Android开发中如何实现android 按钮渐变色色

android Button 切换背景,实现动态按钮和按钮颜色渐变
android Button 切换背景,实现动态按钮和按钮颜色渐变
一、添加android 背景筛选器selector实现按钮背景改变
1、右键单击项目-&new-&Others-&Android-&Android Xml File-&next.
2、在 New Android Xml File对话框中的 Resource Type 下拉框中选择Drawable。在File中输入要创建的文件名。
3、在Root Element:中选择 selector(选择器)-&next-&finish;或者跳过该项选择,可以在生成的xml文件中添加selector的相关代码也是可以的。
4、在生成的xml文件中添加如下代码:
①实现按钮切换后实现按钮背景图片转变。
在筛选器中,上述属性的设定是并列关系的(与关系),可以根据下列提供的属性组合出适应不同场合的筛选。根据筛选的条件可以设置不同状态的背景颜色和背景图片。
②实现按钮切换后实现按钮颜色渐变。
5、在对布局xml文件中对按钮添加背景属性,背景引入以上创建的xml文件即可实现,动态的按钮背景和颜色。
6、背景选择器相关属性
android:state_selected :选中
android:state_focused
:获得焦点
android:state_pressed
android:state_enabled
:设置是否响应事件,指所有事件
二、在java代码中实现背景切换。
1、针对单个按键实现背景切换
通过监听按钮的不同状态来更改按钮的背景图片
public boolean onTouch(View v,MotionEvent event){
参数v:事件源对象
参数event:事件封装类的对象,其中封装了触发事件的详细信息,同样包括事件的类型、触发时间等信息。
event.getAction() == MotionEvent.ACTION_DOWN
======&按钮被按下
event.getAction() == MotionEvent.ACTION_UP
======&按钮被释放
2、针对多个按键实现背景切换
3、设置BUTTON背景为透明
在“一”中使用了在筛选器中设置背景颜色设为透明,在“二”中实现在java中设置背景为透明。接下了,详细说一下透明背景的设置。
1、Button或者ImageButton的背景设为透明或者半透明
①、半透明&Button android:background="#e0000000" ... /&
②、透明&Button android:background="#" ... /&
理解:颜色和不透明度 (alpha) 值以十六进制表示法表示。任何一种颜色的值范围都是 0 到 255(00 到 ff)。对于 alpha,00 表示完全透明,ff 表示完全不透明。表达式顺序是“aabbggrr”,其中“aa=alpha”(00 到 ff);“bb=blue”(00 到 ff);“gg=green”(00 到 ff);“rr=red”(00 到 ff)。例如,如果您希望对某叠加层应用不透明度为 50% 的蓝色,则应指定以下值:7fff0000
设置背景图片透明度:
View v = findViewById(R.id.content);//找到你要设透明背景的layout 的id
v.getBackground().setAlpha(100);//0~255透明度值
设置背景颜色透明度:
ImageView.setBackgroundColor(Color.TRANSPARENT);
没有更多推荐了,在Android中实现颜色渐变
<a data-traceid="question_detail_above_text_l&&
android完成颜色渐变是可以靠代码实现的,那么我简单介绍一下实现的方法,下图是我在项目开发中的一个截图,其中上方颜色值为#e8e8e8,下方颜色值为#dbdbdb,想要实现渐变并且在渐变的结束有一条明显的线,那么就需要渐变结束时的颜色略深于dbdbdb就OK了。
在drawable中建立一个test_gradient.xml文件内容如下:
&shape xmlns:android=&http://schemas.android.com/apk/res/android&
android:shape=&rectangle& &
android:angle=&270&
android:endColor=&#b9b9b9&
android:startColor=&#e8e8e8& /&
然后用法如下:
&ImageView
android:layout_width=&fill_parent&
android:layout_height=&10dip&
android:background=&@drawable/detail_gradient& /&
OK了,我的endColor略深于下面的颜色dbdbdb,这样渐变结束的时候会有一条明显的线,如果不想要这个线,则把endColor设置成dbdbdb,就OK~。gradient中的angle指的是渐变颜色的角度,改成 90,180,270,大家分别自己试一试效果吧,我就不截图了。
原文链接:
不错,这样就可以不用图片,节省空间。java按钮设置渐变色
java图形界面绘制的时候,怎么对一个按钮设置,实现当鼠标移动到按钮上时实现背景色的渐变填充,鼠标移开后渐变恢复原背景色??
浏览 793回答 1
JustWannaHugU
1、设置背景渐变效果,在drawable目录下建buttonshape.xml文件,内容为:&?xml version=&1.0& encoding=&utf-8&?& &shape xmlns:Android=&http://schemas.android.com/apk/res/android& android:shape=&rectangle&&&gradient android:startColor=&#01DFD7& android:endColor=&#81F7F3& android:angle=&270&/& &corners android:bottomRightRadius=&10dip& android:bottomLeftRadius=&1dip& android:topLeftRadius=&18dip& android:topRightRadius=&10dip&/& &/shape&这里startColor是开始颜色,endColor是渐变结束颜色,默认是从上往下渐变,可以使用android:centerY调节,android:angle=&270&设置角度。corners设置边角的圆滑度。设置点中的效果,在drawable目录下建buttonshape_down.xml文件,内容如下:&?xml version=&1.0& encoding=&utf-8&?& &shape xmlns:android=&http://schemas.android.com/apk/res/android& android:shape=&rectangle&& &gradient android:startColor=&#F5F510& android:endColor=&#F5F5B0& android:angle=&270& /& &corners android:bottomRightRadius=&10dip& android:bottomLeftRadius=&1dip& android:topLeftRadius=&18dip& android:topRightRadius=&10dip& /& &/shape&在res目录下新建文件夹xml,然后在xml目录下,新建selectshape.xml文件,内容如下:&?xml version=&1.0& encoding=&utf-8&?& &selector xmlns:android=&http://schemas.android.com/apk/res/android&& &item android:state_pressed=&false& android:drawable=&@drawable/buttonshape& /& &item android:state_pressed=&true& android:drawable=&@drawable/buttonshape_down& /& &item android:drawable=&@drawable/buttonshape& android:state_window_focused=&false&/& 是否获得焦点状态&/selector&设置了图片的触发状态,你可以设置 state_pressed,state_checked,state_pressed,state_selected,state_focused,state_enabled 等几个状态state_pressed设置按钮状态,在main.xml文件中设置Button的属性:&Button android:id=&@+id/button_reimbursementrecords& android:text=&报销记录& android:layout_width=&280px& android:layout_height=&80px& android:textSize=&30px& android:background=&@xml/selcetshape& /&使用background设置按钮的背景色。
随时随地看视频Android开发之渐变色 - 简书
Android开发之渐变色
Android开发之渐变色
在android.graphics中提供了有关Gradient类,包含LinearGradient线性渐变、 RadialGradient径向渐变和SweepGradient梯度渐变三种,它们的基类为android.graphics.Shader。
1. LinearGradient 线性渐变
LinearGradient(float x0, float y0, float x1, float y1, int[] colors, float[] positions, Shader.TileMode tile)
LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1, Shader.TileMode tile)
渐变线起点的x坐标
渐变线起点的y坐标
渐变线末端的x坐标
渐变线末端的y坐标
要沿着渐变线分布的颜色数组
渐变线开始处的颜色
渐变线末端的颜色
颜色数组中每个对应颜色的相对位置[0,1]。如果为null,则颜色沿线均匀分布。
着色器平铺模式
Paint paint =new Paint();
//两个坐标形成变量,规定了渐变的方向和间距大小,着色器为镜像
LinearGradient linearGradient =new LinearGradient(0,0,200,0, Color.RED,Color.BLUE, Shader.TileMode.MIRROR);
paint.setShader(linearGradient);
paint.setStrokeWidth(50);
canvas.drawLine(0,getMeasuredHeight()/2,getMeasuredWidth(),getMeasuredHeight()/2, paint);
LinearGradient
2. RadialGradient 径向/放射渐变
RadialGradient(float x, float y, float radius, int[] colors, float[] positions, Shader.TileMode tile)
RadialGradient(float x, float y, float radius, int color0, int color1, Shader.TileMode tile)
半径中心的x坐标
半径中心的y坐标
必须是积极的。此渐变的圆的半径
颜色分布在圆的中心和边缘之间
圆圈中心的颜色
圆圈边缘的颜色
颜色数组中每个对应颜色的相对位置[0,1]。如果为null,则颜色沿线均匀分布。
着色器平铺模式
paint =new Paint();
radialGradient =new RadialGradient(240,360,200, new int[]{Color.BLUE, Color.GREEN, Color.RED },null, Shader.TileMode.CLAMP);
paint.setShader(radialGradient);
canvas.drawCircle(240,360,200,paint);
RadialGradient
3. SweepGradient 扫描/梯度/扇形渐变
SweepGradient(float x, float y, int[] colors, float[] positions)
SweepGradient(float x, float y, int color0, int color1)
中心的x坐标
中心的y坐标
颜色分布在中心周围,阵列中必须至少有2种颜色。
在扫描开始时使用的颜色
在扫描结束时使用的颜色
颜色数组中每个对应颜色的相对位置[0,1]。如果为null,则颜色沿线均匀分布。
paint =new Paint();
int[] colors = new int[]{Color.GREEN, Color.GREEN, Color.BLUE, Color.RED, Color.RED};
sweepGradient = new SweepGradient(240, 360,colors,null);
paint.setShader(sweepGradient);
canvas.drawCircle(x,y,200,paint);
SweepGradient
\( ^o ^)/了解!
饮冰十年 难凉热血
本文转载自:http://southpeak.github.io//quartz2d-8/ Quartz提供了两个不透明数据odgago创建渐变:CGShadingRef和CGGradientRef。我们可以使用任何一个来创建轴向(axial)或径向(r...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
Android View — Gradient 渐变 Android 支持三种颜色渐变, LinearGradient(线性渐变)
RadialGradient (径向渐变) SweepGradient(扫描渐变)。这三种渐变继承自android.graphics.Sha...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
安卓的graphics提供了2D图形各种绘制工具,如Canvas(画布), color filters(颜色过滤器), points(点), rectangles(矩形)等,利用这些工具可以直接在界面上进行绘制。本文主要讲的是自定义View时我们经常用到的Canvas和Pa...
富人家的孩子说:停下来就会输 最近,郭晶晶一家参加了一场马拉松亲子跑比赛,赛后采访霍启刚爆儿子的料,跑步途中他劝儿子累了休息一下,霍中曦说:“不行啊,我停下来就会输。” 何猷君 ,澳门赌王的儿子,他说,“我20岁到29岁期间,从未放过一天假。”别人一学期修四门课,他就修8门...
你溺过水吗。 那种,液体浸润脸颊,冰凉,带走身上最后一丝温度的感受。 它伴随着呼吸涌入胸腔,充满肺泡。 然后,只剩下挣扎。 1 社会如巨轮,汹涌翻滚,碾碎一切挡在面前的蝼蚁。 我们向往过英雄,希望能站立起来,不愿同流合污。 后来才意识到,大势如江河,如奔海,无人能挡。阻在中...
中国从不缺人,只是缺干正经事的人。当一部分人要闲死时,别人就要忙死。当一部分人要胡来时,别人就没好日子过。要想让大家都有好日子过,就不能让一部分人胡来!
这周计划完成情况不理想,需要好好总结一下原因。 这周计划外事项较多。从周日到周三上午,几乎从早到晚都在加班完成报告。周三下午算出数据后发现是技术给导错了,然后又花了一天时间重新导数据、清理数据。很多时候遇到事情是在所难免的,但过程中我的表现需要反思。 1. 连续加班很多人都...
故事简介:米澜与原楱认识十四年,见证了彼此爱与成长的轨迹。原楱从小渴望安稳的生活,从莱比锡音乐学院毕业后如愿回到国内一所高校教音乐。而杂志设计总监安亦卓的出现成了她按部就班人生中最大的意外。他像一场高烧,将她的体温提高到正常值以上;他像一架直升机,二十多年来她对平淡幸福的憧...16:06 提问
android按钮的渐变颜色效果
我在xml中的代码如下:
android:startColor= "#AE845c"
android:endColor="#935Fc0"
希望出现这样的效果:
不知道怎么实现?
按赞数排序
用type和angle实现渐变,angle可以选取0-360的角度
android:type="linear"
android:angle="0"
angle = 90度 试下
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐}

我要回帖

更多关于 css按钮颜色渐变 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信