Android颜色编辑器的制作中遇到的问题分析
Android没有自带颜色编辑器,为了让用户直观的选择颜色,做了这么一个控件,效果图如下:
上方颜色条为主颜色条,用户可以选择大致需要的颜色,下方是该颜色的平衡调节,可以调节明亮度。
背景颜色实现起来很容易,用GradientDrawable在主色之间分段渐变即可,上方的背景色是永远不变的。下方平衡调节只要在白色、选定色和黑色之间渐变即可,下方的颜色随着上方的颜色变化而变化。
颜色条自身控件由于需要拖动,直接集成Android自带的SeekBar就能实现,只需替换默认的ProgressDrawable即可。
唯一遇到的一个奇怪问题是:
我为下方的颜色调提供了一个颜色数组:
private int[] colorArr;
里面存放:白色、上方选定色和黑色
当上方选定色更改后,我改变colorArr数组中的第二个颜色,即选定色,并调用控件的invalidate方法,奇怪的是控件并没有改变颜色,还是原来的颜色。
此时,如果拖动下方的滚动条,哪怕只拖动1%,也能改变成正确的颜色。
我就猜测:Android的SeekBar在进度没有改变的时候,是不会重绘它的进度背景色的。
于是使用以下技巧,人为的改变到某个进度,再改回来,这样就能重绘它的进度背景色了:
/**
* 设置颜色平衡的中间色
* @param color
*/
public void SetBalenceColor(int color)
{
this.color = color;
SetBackground();//重新设置ProgressDrawable中的中间色
//this.invalidate();
int max = this.getMax();
int currentProgress = this.getProgress(); //备份进度
this.setProgress(max - currentProgress);//修改到其他某个进度
this.setProgress(currentProgress);//还原进度
}
相关推荐
-
Android中vim编辑器进阶的使用介绍
1. 移动指令 (1). h j k l, 方向键,记忆技巧:左右方向的是最左边和最右边的,j向下打了个勾,所以是向下键,剩下的k就是向上的键了. (2). b, before,上一个单词(词首) w, word,下一个单词(词首) e, end,下一个单词(词尾) 注意这些小写的命令由字母,点,数字,下划线划分,还有这三个对应的大写字母的命令,B,W,E,类似的意思,但是是以空格区分移动的.总而言之,大写的移动范围要大. (3)
-
Android中EditText实现不可编辑解决办法
android:editable is deprecated: Use an <EditText> to make it editable android:editable is deprecated: Use inputType instead 分析:关于EditText控件的read-only问题,即: 无法通过UI更改其中的内容, 但可以选定部分内容, 进行复制.在早期的sdk, EditText有Editable属性, 现在这个属性已经deprecated了. 解决方法: 其实只需
-
9个非常棒的Android代码编辑器 移动开发者的最爱
在网络信息高速发展的今天,移动设备的方便快捷已经深入人心,越来越多的开发人员会选择在移动设备上查看或编辑源代码.于是,Android平台上大量基于代码编程的应用应运而生,谷歌应用商店里的代码编辑器.编译器和开发环境比比皆是.由于不同工具的特性和缺点不尽相同,因此如何选择一款最适合自己的开发工具便成了一件头疼的事情.在这里,我们针对移动开发人员列出了9个非常有用的Android代码编辑器. TOP1:Code Peeker Code Peeker可以让语法高亮显示并允许你查找代码片段,且被Goog
-
Android颜色编辑器的制作中遇到的问题分析
Android没有自带颜色编辑器,为了让用户直观的选择颜色,做了这么一个控件,效果图如下: 上方颜色条为主颜色条,用户可以选择大致需要的颜色,下方是该颜色的平衡调节,可以调节明亮度. 背景颜色实现起来很容易,用GradientDrawable在主色之间分段渐变即可,上方的背景色是永远不变的.下方平衡调节只要在白色.选定色和黑色之间渐变即可,下方的颜色随着上方的颜色变化而变化. 颜色条自身控件由于需要拖动,直接集成Android自带的SeekBar就能实现,只需替换默认的ProgressDrawa
-
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
本文实例讲述了TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法.分享给大家供大家参考,具体如下: 最近项目里要添加编辑器,以为CKeditor比较出名,所以研究了一下... 1.下载编辑器什么的不用说了 2.修改config配置文件 config.image_previewText=' '; config.filebrowserImageUploadUrl = 'uploadFiles'; 添加这两行代码,上面的是去除预览中的一堆没有用的东西,下面的是上传文件的方法名, 注意:
-
Android使用selector修改TextView中字体颜色和背景色的方法
本文实例讲述了Android使用selector修改TextView中字体颜色和背景色的方法.分享给大家供大家参考,具体如下: android中的selector大家都很熟悉了,用它可以很方便的实现,控件在不同的动作中,颜色等值的变化.这里我说一下TextView中的一些应用. 我想大家都知道,Button按钮在源码上看是一种特殊的TextView,所以我们很多时候,按钮全是使用的TextView来完成,只要加一个android:clickable="true"就可以了. TextVi
-
Android以对话框形式制作数字软键盘示例
目录 一.介绍 二.布局编写 三.逻辑编写 一.介绍 Android的大部分自定义软键盘主要是通过android自带控件KeyboardView实现的. 那么,有没有其他简单易上手的方法来制作一个软键盘呢? 当当当当!!! 这里就要说到对话框形式的软键盘啦,简单方便易理解! 下面,通过自定义的数字软键盘来介绍如何利用对话框实现自定义软键盘! 先看看效果! 二.布局编写 我们先来看看布局! 首先是activity_main的实现: 在这里,主界面布局非常简单,仅需要两个TextView文本框就可以
-
Android音乐播放器制作 加入控制台(三)
Android音乐播放器的运行效果 这篇博客还是接着上一篇Android音乐播放器制作写的,没看过的可以去看看. 其中这个效果(圆形ImageView和控件匀速旋转): 我前面的博客中写到过我就不一一细说了: 图片变成圆形:android图片处理,让图片变成圆形 旋转:android图片处理:让图片一直匀速旋转 文字跑马灯:TextView的跑马灯效果以及TextView的一些属性 具体实现 首先是布局文件中添加了如下代码,这些代码就是实现控制台的,给整体设置了一个invisible,为了让他点
-
Android音乐播放器制作 点击歌曲实现播放(二)
上次我们实现了把手机里的音频扫描到,然后放在list集合里面,用ListView展示在手机界面上,如果没有看过的可以去看看本人的博客:Android音乐播放器制作(一)扫描本地音乐显示在手机上 这次是在上一次的基础上直接继续写代码,几行代码实现点击那首歌曲就播放那首歌曲,系统已经提供了播放音频的对象了,直接用就可以了,具体如下: 1.声明一个MediaPlayer private MediaPlayer mediaPlayer;//播放音频的 2.实例化 //初始化 mediaPlayer =
-
Android 颜色大全color.xml文件使用方法
使用方法: 将color.xml文件拷到res/values目录下后我们只需要R.xml文件名称.name名称就可以调用了(例如:R.color.red) <?xml version="1.0" encoding="utf-8"?> <resources> <color name="white">#FFFFFF</color> <!-- 白色 --> <color name=&qu
-
Android颜色配置器配置方法
一.Android Color设置 1.在xml文件中 想设置颜色直接设置background的属性或者其他的color属性.随便设置一个颜色如#000,再点击左边的颜色方块,弹出颜色选择器选择颜色 2.在java代码中 ①Color.parseColor("#000"); tvShow.setBackgroundColor(Color.parseColor("#000")); [提示]可以在布局文件中配置好颜色值,然后把用"#"表示的颜色带到j
-
Android Studio 利用Splash制作APP启动界面的方法
最近又开始学习Android studio 了,在制作APP时,都有一个启动的界面,看上去美观且实用(也可以作为以后的广告位← 那怎样制作呢? 第一步:新建Splash 如图,新建一个Empty Activity. 然后将名字改为SplashActivity. 第二步:SplashActivity的内容 如图: 方便起见,我把代码贴出来,代码如下: public class SplashActivity extends Activity { // private final int SPLASH
随机推荐
- Lua中的变量类型与语句学习总结
- SQL Server手工插入标识列的方法
- javascript设计模式之解释器模式详解
- 解析使用JS 清空File控件的路径值
- 安全的FTP服务器 vsftpd简介
- java实现插入排序算法
- ASP.NET中Image控件使用详解
- asp.net验证码的简单制作
- 利用Python实现Windows下的鼠标键盘模拟的实例代码
- Shell脚本监控服务器在线状态和邮件报警的方法
- jquery判断浏览器后退时候弹出消息的方法
- 数据结构简明备忘录 线性表
- SQLServer 循环批处理
- java发送heartbeat心跳包(byte转16进制)
- Visual Studio中的jQuery智能提示设置方法
- Java正则表达式判断字符串中是否包含中文示例
- js实现不重复导入的方法
- Android Intent传递对象的两种方法(Serializable,Parcelable)详细介绍
- java中的char占几个字节实例分析
- 在Yii框架中使用PHP模板引擎Twig的例子