在android上渐变按钮颜色变化

在android上渐变按钮颜色变化,第1张

概述我想逐渐改变按钮颜色,点击它之后.我的意思是,按钮必须具有,例如下一组颜色:默认情况下 – 深蓝色,然后是深蓝色,然后是蓝色,然后是浅蓝色,最后是最亮的蓝色.这只是一个例子,我真的想在循环中更改按钮颜色,就像在下一个代码中一样.但是,我无法理解,为什么它不显示中间色.它仅显示第一种颜色,最后一种颜色显示. 如何改善这个? public class ActivityExample extends A 我想逐渐改变按钮颜色,点击它之后.我的意思是,按钮必须具有,例如下一组颜色:默认情况下 – 深蓝色,然后是深蓝色,然后是蓝色,然后是浅蓝色,最后是最亮的蓝色.这只是一个例子,我真的想在循环中更改按钮颜色,就像在下一个代码中一样.但是,我无法理解,为什么它不显示中间色.它仅显示第一种颜色,最后一种颜色显示.

如何改善这个?

public class ActivityExample extends Activity {private changecolorBtn;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_animations);    changecolorBtn = (button) findVIEwByID(R.ID.btn_change_color);    changecolorBtn.setBackgroundcolor(color.BLACK);    changecolorBtn.setonClickListener(new VIEw.OnClickListener() {        @OverrIDe        public voID onClick(VIEw v) {            changebuttoncolor(v);        }    });}private voID changebuttoncolor(VIEw v) {    // How many intermediate color will be,and delay in millisecond between them    int count = 20,delay = 100;    for (int i = 0; i < count; i++) {        try {            int color = ((colorDrawable) changecolorBtn.getBackground())                    .getcolor();            int blue = color.blue(color),red = color.red(color),green = color.green(color);            changecolorBtn.setBackgroundcolor(color.rgb(red+10,green+5,blue+3));            Thread.sleep(delay);        } catch (InterruptedException inE) {        }    }}@OverrIDeprotected voID onSaveInstanceState(Bundle outState) {    super.onSaveInstanceState(outState);}@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) {    // Inflate the menu; this adds items to the action bar if it is present.    getMenuInflater().inflate(R.menu.main,menu);    return true;}

}

解决方法 我使用 TransitionDrawable解决了这个问题.您可以按照下一步 *** 作:

>在drawable文件夹中创建一个xml文件,并写入如下内容:

`

<?xml version="1.0" enCoding="UTF-8"?><Transition xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:drawable="@color/color1" />    <item androID:drawable="@color/color2" /></Transition>

`

>然后,在你的xml for this button(或其他元素/ VIEw)中你应该在androID:background属性中引用这个TransitionDrawable.
>此外,您应该将颜色存储为资源:为此,您必须创建如下的xml:

`

<?xml version="1.0" enCoding="UTF-8"?><resources>    <color name="color1">#990000</color>    <color name="color2">#cc3311</color></resources>

`

并将此xml文件保存在/ res / values /文件夹中,将xml命名为color.xml.

>并启动代码转换:

`

int durationMillis = 2000;TransitionDrawable Transition = (TransitionDrawable) changecolorBtn.getBackground();Transition.startTransition(durationMillis);

`

这对我有所帮助,我希望它对其他人有用.

总结

以上是内存溢出为你收集整理的在android上渐变按钮颜色变化全部内容,希望文章能够帮你解决在android上渐变按钮颜色变化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1122008.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存