android自定义圆环控件 滑动选择百分比

2023-10-31

  之前做了一个聊天应用,其中需要一个圆环控件,滑动可以选择百分比。看效果图。


  这个自定义view可以分几步完成。画绿色圆环;画灰色圆环;画三角形;画百分比。其中三角形围绕环形旋转,采用Path类实现,首先画出基本的三角形路径,而后适当计算一下,利用matrix变换得到实际要绘制的路径,直接绘制即可。

另外要实现手势对圆环的控制,可以重写onTouchEvent方法,由点击或滑动的坐标计算得到百分比,然后重新绘图。

顺便尝试一下android studio,虽然目前还是0.8.14版本,而且不支持NDK,但毕竟是专业于android开发,不考虑这些缺点,其它很多细节方面都是很不错的,比较看好android studio。

下面是自定义的View。

package com.example.hanwen.myapplication;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;


public class MyView extends View {

    private int color_start;
    private int color_end;

    private float circleDimensionRate = 0.1f;//圆环比例
    private float triangleDimensionRate = 0.1f;//三角形比例

    private float s;//三角形边长
    private float strokeWidth;//圆环宽度
    p
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android自定义圆环控件 滑动选择百分比 的相关文章

  • 发生存储异常。无法在firebase中上传图片

    在我能够更改图像并将其上传到 firebase 之前 这段代码就可以工作 但现在我突然收到此错误 我不知道问题是什么 public class SettingsActivity extends AppCompatActivity priva
  • 如何在android中点击画布上绘制的圆圈?

    我正在开发一个人脸检测应用程序 在这个应用程序中 我必须在脸上的眼睛和嘴巴用户可以点击拖动圆圈 在检测到的人脸上根据自己设置位置 因此 所有圆圈都已成功绘制在脸上 但我无法单击特定圆圈并使用缩小选项在整个脸上移动 请建议我有关相同问题的正确
  • APK META-INF/library_release.kotlin_module 中复制的重复文件

    我最近通过 JitPack 添加了两个 Android 库 但出现以下错误 Duplicate files copied in APK META INF library release kotlin module 我已经清除了缓存 并尝试使
  • 更改首选项的背景颜色

    我有一个PreferenceCategory xml 文件 我已经在其中定义了所有首选项 我从扩展的类中调用它PreferenceActivity 我无法设置设置屏幕的背景 该屏幕是在如下所示的 xml 文件的帮助下显示的 请看我已经定义了
  • 任务“:app:checkReleaseDuplicateClasses”执行失败

    我的 React Native Android 构建中突然出现构建问题 令人惊讶的是 它是早上建好的 没有做任何改变 但突然就失败了 这就是我得到的错误 知道为什么会发生这种情况吗 在 stack 和 GitHub 中也看到了一些类似的问题
  • 如何使用 (a)smack 在 Android 上保持 XMPP 连接稳定?

    我使用适用于 Android 的 asmack android 7 beem 库 我有一个后台服务正在运行 例如我的应用程序保持活动状态 但 XMPP 连接迟早会在没有任何通知的情况下消失 服务器表示客户端仍然在线 但没有发送或接收数据包
  • Android,让文本切换器成为中心?

    如何集中我的文本切换器 我尝试过设置重力 但似乎不起作用 ts setFactory new ViewFactory public View makeView TextView t new TextView this t setTypefa
  • 相当于Android中的javax.swing.Timer

    有没有类似的东西javax swing Timer在安卓上 我知道如何创建自己的线程 但是有类似摆动计时器的东西吗 您可能正在寻找课程android os CountDownTimer http developer android com
  • 明文 HTTP 流量...不允许

    我的程序从用户那里获取一个 URL 因此它可以向互联网上的任何网站发出请求 我试图让这成为可能 我查找了有关 Android HTTP Cleartext 错误的所有答案 并做了这个 但它仍然不允许我连接我的测试本地 PHP 服务器 我在这
  • Android Things 文件系统

    我正在 Android 上构建这个应用程序 我希望能够让它访问 U 盘上的媒体文件 甚至树莓派的 SD 卡上的媒体文件 我还不知道我将如何处理这些文件 但我只是想知道它是否可能 如果不是这样也没关系 我还有其他解决方案 但我想我会先从明显的
  • 安卓;在 AdapterViewFlipper 上设置输入/输出动画:未知的动画师名称翻译

    我有一些非常简单的动画 可以与 ViewFlipper 完美配合 但如果我尝试在 AdapterViewFlipper 输入 输出上设置它们 我会收到运行时错误 未知的动画师名称翻译 查看每个方法的相应方法 看起来 ViewFlipper
  • 将搜索结果更新为 Android 中的 Lazy Adapter

    我有项目列表 想为其实现搜索功能 因此 我有一个带有 addTextChangedListener 的文本框 搜索结果运行良好 但当我尝试将结果设置为 ListView 时 新结果将附加到旧结果中 我正在使用惰性适配器 如何清除适配器中的旧
  • 使用startActivityForResult,如何获取子活动中的requestCode?

    我有四项活动 即 A B C 和 D 我的情况是A将通过startActivityForResult启动活动B startActivityForResult new Intent this B class ONE 在另一种情况下 我将使用不
  • 改造Android基本且简单的问题

    我的服务器返回简单的 Json 结果 如下所示 message Upload Success 我正在尝试将结果放入改造模型类中 public class MyResponse SerializedName message String me
  • 在Android的activity中调用onResume

    在活动的过程中通过调用 this OnResume 强制 onResume 事件可以吗 或者我应该实现另一个由 OnResume 和第一个成员调用的过程 实现在您的重写中调用的另一个过程onResume 后者不打算由您调用 它是一种方便的方
  • 找不到资源矢量绘图的异常

    我将在某些设备上运行我的应用程序 其崩溃日志如下 01 04 16 54 02 206 7466 7466 com lawnmowers E AndroidRuntime FATAL EXCEPTION main Process com l
  • 在 Android SDK 中通过单击按钮更改背景颜色不起作用

    我有一个简单的程序 可以在单击按钮后更改背景颜色 但它不起作用 public class ChangeBackgroundActivity extends Activity Called when the activity is first
  • Exif 方向标签返回 0

    我正在开发一个自定义相机应用程序 我面临以下问题 当我尝试使用检索方向时ExifInterface 它总是返回 0 ORIENTATION UNDEFINED 这使我无法将图像旋转到正确的状态 从而无法正确显示 我使用示例代码来设置相机旋转
  • RecyclerView元素更新+异步网络调用

    我有一个按预期工作的回收视图 我的布局中有一个按钮可以填充列表 该按钮应该进行异步调用 根据结果 我更改按钮的外观 这一切都发生得很好 但是 当我单击按钮并快速向下滚动列表时 异步调用的结果会更新新视图的按钮 代替旧视图的视图 我该如何处理
  • Android:列“_id”不存在

    我收到这个错误 IllegalArgumentException 列 id 不存在 当使用SimpleCursorAdapter从我的数据库中检索 该表确实有这个 id柱子 注意到这是一个常见问题 我尝试根据网上的一些解决方案来解决它 但它

随机推荐

  • Element-UI

    Element UI 组件 Tree 树形控件 用清晰的层级结构展示信息 可展开或折叠
  • 学习vue3系列computed

    响应式API中 computed 和之前的 computed 选项用法类似 对于任何复杂逻辑 我们都可能使用计算属性 比如翻转字符串
  • windows下secureCRT远程连接Linux错误

    描述 The server has disconnected with an error Server message reads A protocol error occurred The connection is closed by
  • MIPI D-PHY的初始化(MIPI Alliance & Xilinx)

    DPHY的基本介绍及使用已有很多文章 基本是基于 MIPI Alliance Specification for D PHY 的内容 学习时也以此为准 可参考CSDN上的文章 着重讲述MIPI D PHY的初始化部分 1 D PHY的功能及
  • 服务器2012系统磁盘压缩,windows10 部分文件夹自动勾选了“压缩内容以便节省磁盘空间”...

    您好 根据您的描述 在重启前能够正常取消压缩 但在重启后文件再次被压缩 说明系统功能和组件正常 很可能是某个应用影响了系统导致这个问题 请您仔细回忆下 您是在安装或更新了什么应用后出现该问题的 或使用了空间优化应用 请尝试将其关闭后 查看能
  • 基于Sqli-Labs靶场的SQL注入-54~65关

    目录 Less54 十步以内获取密钥 爆破数据库名 爆破表名 爆破列名 爆破字段值 Less55 十四步以内获取密钥 爆破数据库名 爆破表名 爆破列名 爆破字段值 Less56 十四步以内获取密钥 Less57 十四步以内获取密钥 Less
  • Linux Ubuntu下运行startx后的恢复办法

    解决办法 Alt Ctrl F3 进入控制台界面 提示登录时 输入你的Ubuntu用户名后回车 有密码的话 再输入密码 登录成功 cd 进入你的用户目录 rm rf Xauth 删除 Xauthority文件 Alt Ctrl F7 返回到
  • ROBO Pro的机械臂编程过程

    ROBO Pro是一种用于控制机械臂的软件 它可以使用图形化或文本化的编程方式 机械臂编程的过程大致如下 连接机械臂和电脑 打开ROBO Pro软件 选择合适的模板或创建新的项目 设计编程逻辑 可以使用拖拽或输入代码的方式 调试和运行程序
  • Java基础之static关键字

    目录 静态的特点 第一章 静态代码块 第二章 静态属性 第三章 静态方法 调用静态方法时 静态方法中调用非静态方法时 第四章 static关键字与其他关键字 友情提醒 先看文章目录 大致了解文章知识点结构 点击文章目录可直接跳转到文章指定位
  • GitHub仓库push报错remote: Support for password authentication was removed on August 13, 2021.

    发现GitHub项目从2021年8月13日开始已经不能使用用户名和密码push代码了 搜索了下 有以下两种方法可以尝试 记录一下 ssh 方式 先在电脑上生成ssh的加密公私钥 使用如下命令 命令中要将 C后面的参数设置为自己的github
  • windows文件保护服务器,Windows 文件保护功能的说明

    WFP 功能的工作方式 WFP 功能使用两种机制为系统文件提供保护 第一种机制在后台运行 在 WFP 收到受保护目录中的文件的目录更改通知后 就会触发这种保护机制 WFP 收到这一通知后 就会确定更改了哪个文件 如果此文件是受保护的文件 W
  • 深度学习十大框架比较

    框架比较 转 1 TensorFlow 对于那些听说过深度学习但还没有太过专门深入的人来说 TensorFlow 是他们最喜欢的深度学习框架 但在这里我要澄清一些事实 在 TensorFlow 的官网上 它被定义为 一个用于机器智能的开源软
  • Deeplabcut教程(一)安装(GPU&CPU版本)(纯新人向)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 Deeplabcut是什么 二 使用步骤 1 环境配置 1 1安装anaconda 1 2换源 1 2安装CUDA和CUdnn GPU 2 Deeplab
  • C++类的继承与派生

    一 基本概念 1 类的继承 是新的类从已有类那里得到已有的特性 或从已有类产生新类的过程就是类的派生 原有的类称为基类或父类 产生的新类称为派生类或子类 2 派生类的声明 class 派生类名 继承方式 基类名1 继承方式 基类名2 继承方
  • 罗技键盘蓝牙搜不到

    罗技K580蓝牙键盘 长按F11 F12在macbookpro 搜索不到 首先 按一下 fn esc 然后长按F11 F12 就可以搜到了
  • 从0开始搭建react项目

    一 项目创建 插件安装 前端项目的创建有三种方式 参考https juejin cn post 6844903953524588552 在html中引入react react dom Babel 使浏览器识别JSX语法 等 使用官方脚手架c
  • Missing variable is:CMAKE_CUDA_DEVICE_LINK_EXECUTABLE

    Linux平台下使用CMAKE3 10 2与CUDA10 2混合编程时出现错误 Missing variable is CMAKE CUDA DEVICE LINK EXECUTABLE 根据https github com colmap
  • 如何遍历一个对象所有的属性并判断属性值

    最近的项目里的一个需求 要我判断一个对象里的所有属性 是否存在值不是 或是null的 public boolean checkGoodMode List
  • 服务器物理内存稳定90%多,服务器物理内存使用率90以上

    服务器物理内存使用率90以上 内容精选 换一换 系统每30秒周期性检测HDFS服务直接内存使用状态 当检测到DataNode实例直接内存使用率超出阈值 最大内存的90 时 产生该告警 直接内存使用率小于阈值时 告警恢复 DataNode可用
  • android自定义圆环控件 滑动选择百分比

    之前做了一个聊天应用 其中需要一个圆环控件 滑动可以选择百分比 看效果图 这个自定义view可以分几步完成 画绿色圆环 画灰色圆环 画三角形 画百分比 其中三角形围绕环形旋转 采用Path类实现 首先画出基本的三角形路径 而后适当计算一下