当前位置:首页 » 安卓系统 » android进度条渐变

android进度条渐变

发布时间: 2022-07-07 01:52:10

1. Android开发怎么自定义绘制如下图中这种进度条急需!在线等!

一)变换前背景

先来看看progressbar的属性:
1. <ProgressBar
2. android:id="@+id/progressBar"
3. style="?android:attr/progressBarStyleHorizontal"
4. android:layout_width="match_parent"
5. android:layout_height="wrap_content"
6. android:layout_margin="5dip"
7. android:layout_toRightOf="@+id/progressBarV"
8. android:indeterminate="false"
9. android:padding="2dip"
10. android:progress="50" />
根据style="?android:attr/progressBarStyleHorizontal",我们找到源码中的style.xml
1. <style name="Widget.ProgressBar.Horizontal">
2. <item name="android:indeterminateOnly">false</item>
3. <item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
4. <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
5. <item name="android:minHeight">20dip</item>
6. <item name="android:maxHeight">20dip</item>
7. </style>
看到
<item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
木有,继续发掘源码,找到drawable下面的progress_horizontal.xml,这就是我们今天的主角了:
1. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
2.
3. <item android:id="@android:id/background">
4. <shape>
5. <corners android:radius="5dip" />
6. <gradient
7. android:startColor="#ff9d9e9d"
8. android:centerColor="#ff5a5d5a"
9. android:centerY="0.75"
10. android:endColor="#ff747674"
11. android:angle="270"
12. />
13. </shape>
14. </item>
15.
16. <item android:id="@android:id/secondaryProgress">
17. <clip>
18. <shape>
19. <corners android:radius="5dip" />
20. <gradient
21. android:startColor="#80ffd300"
22. android:centerColor="#80ffb600"
23. android:centerY="0.75"
24. android:endColor="#a0ffcb00"
25. android:angle="270"
26. />
27. </shape>
28. </clip>
29. </item>
30.
31. <item android:id="@android:id/progress">
32. <clip>
33. <shape>
34. <corners android:radius="5dip" />
35. <gradient
36. android:startColor="#ffffd300"
37. android:centerColor="#ffffb600"
38. android:centerY="0.75"
39. android:endColor="#ffffcb00"
40. android:angle="270"
41. />
42. </shape>
43. </clip>
44. </item>
45.
46. </layer-list>
看到android:id="@android:id/progress"木有,看到android:id="@android:id/secondaryProgress"木有
把这个文件复制到自己工程下的drawable,就可以随心所欲的修改shape的属性,渐变,圆角等等
那么怎么放一个图片进去呢,ok,新建progress_horizontal1.xml:
1. <?xml version="1.0" encoding="utf-8"?>
2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
3.
4. <item android:id="@android:id/progress" android:drawable="@drawable/progressbar" />
5.
6. </layer-list>
在android:drawable中指定你处理好的图片
然后回到布局中
1. <ProgressBar
2. android:id="@+id/progressBar1"
3. android:layout_width="match_parent"
4. android:layout_height="wrap_content"
5. android:layout_below="@+id/progressBar"
6. android:layout_margin="5dip"
7. android:layout_toRightOf="@+id/progressBarV"
8. android:background="@drawable/progress_bg"
9. android:indeterminate="false"
10. android:indeterminateOnly="false"
11. android:maxHeight="20dip"
12. android:minHeight="20dip"
13. android:padding="2dip"
14. android:progress="50"
15. android:progressDrawable="@drawable/progress_horizontal1" />
android:background="@drawable/progress_bg"指定背景
android:progressDrawable="@drawable/progress_horizontal1"前景使用上面的progress_horizontal1

要是还不行

你来我们群里说吧

这里是开发者互相学习交流的 有大神

让他们给你解释你的疑问 号 码look at my n a m e.....

2. 关于Android怎么改变ProgressBar进度条颜色

需求:下载中的颜色要自定义,要替换为另外的一个颜色

方法:就是在

<ProgressBar
android:layout_weight="1"
android:id="@+id/download_item_progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="15dip"
android:progressDrawable="@drawable/progressbar_style"></ProgressBar>

在drawable中新建一个progressBar_style.xml文件,

这个属性进行设置,有两个方案:

第一,设置两张图片:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="">

<item android:id="@android:id/background"
android:drawable="@drawable/progressbar_not" />

<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/progressbar_not">
</item>

<item android:id="@android:id/progress"
android:drawable="@drawable/progressbar_selected">

</item>
</layer-list>

第二种,设置背景颜色:

<?xml version="1.0" encoding="utf-8"?>
<item android:id="@android:id/background"

>

<shape>

<corners android:radius="5dip" />

<gradient

android:startColor="#666666"

android:centerColor="#666666"

android:centerY="0.75"

android:endColor="#666666"

android:angle="270"

/>

</shape>

</item>

<item android:id="@android:id/progress"

>

<clip>

<shape>

<corners android:radius="5dip" />

<gradient

android:startColor="#da1f3e"

android:centerColor="#da1f3e"

android:centerY="0.75"

android:endColor="#da1f3e"

android:angle="270"

/>

</shape>

</clip>

</item>

<item android:id="@android:id/secondaryProgress"

>

<clip>

<shape>

<corners android:radius="5dip" />

<gradient

android:startColor="#fed7ec"

android:centerColor="#fed7ec"

android:centerY="0.75"

android:endColor="#fed7ec"

android:angle="270"

/>

</shape>

</clip>

</item>

</layer-list>

其中的属性还要进一步研究具体作用,据文档翻译有设置角度,渐变的。
转载,仅供参考。

3. android渐变设置占比

比较简单的一种方式实现颜色渐变,我们通过定制一个对应的shape文件,配置其属性之后,直接作为android:background赋值给对应的View即可。
1.创建XML文件
在你的drawable文件夹下创建shape资源:
shape_gradient.xml文件代码如下:
android:endColor="@color/colorPrimary"
android:startColor="@color/colorAccent" />
解释一下各个层级的标签:
[shape] 根标签,声明一个shape
[gradient] 声明该shape的属性-渐变色,除此外还有其他属性如corners、stroke、size等等
[android:angle]渐变色的角度,举例来说,0代表从上至下颜色渐变;45代表从左至右颜色渐变;90代表从下至上颜色渐变…
[android:startColor&android:endColor] 很好理解,渐变开始的颜色和渐变结束时的颜色(从什么颜色变到什么颜色)
2.将渐变色赋予对应的View
直接放入MainActivity的layout文件中

4. android 进度条样式 怎么改

Android系统提供了两大类进度条样式,长形进度条(progressBarStyleHorizontal) 和圆形进度条(progressBarStyleLarge)。

android 进度条样式更改:

  • 第一种

    (默认样式(中等圆形))

进度条用处很多,比如,应用程序装载资源和网络连接时,可以提示用户稍等,这一类进度条只是代表应用程序中某一部分的执行情况,而整个应用程序执行情况呢,则可以通过应用程序标题栏来显示一个进度条,这就需要先对窗口的显示风格进行设置"requestWindowFeature(Window.FEATURE_PROGRESS)"。

5. android 绘制进度条

进度条一般是用来显示耗时操作的,如你图示,最终完成的时候刚好绕一圈,是一个计时器来确定进度条跑完一圈的时间,然后按时间的流逝来绘制进度条(也就是边框)。
我的思路是这样的,首先确定进度条的起始位置,也就是黑色背景图的上部中间(前提是获取到背景图片四个角角位置坐标(X,Y)),计算出图片的长宽,这样背景图片四个角的坐标都有了,进度条的起始坐标也有了,然后根据周长和定时器的时间确定我们每毫秒需要绘制多长,遇到拐角的时候判断一下进度条的实时坐标与背景图的拐角坐标是否一致,然后就拐个弯,继续绘制。
这是个思路,我过会儿调试一下

6. 怎么在android上面做出根据形状来渐变的效果

<shape> Android:shape=["rectangle" | "oval" | "line" | "ring"] 其中rectagle矩形,oval椭圆,line水平直线,ring环形
<shape>中子节点的常用属性:
<gradient> 渐变
Android:startColor 起始颜色
Android:endColor 结束颜色
Android:angle 渐变角度,0从左到右,90表示从下到上,数值为45的整数倍,默认为0;
Android:type 渐变的样式 liner线性渐变 radial环形渐变 sweep <solid > 填充
Android:color 填充的颜色
<stroke >描边
Android:width 描边的宽度
Android:color 描边的颜色
Android:dashWidth 表示'-'横线的宽度
Android:dashGap 表示'-'横线之间的距离
<corners >圆角
Android:radius 圆角的半径 值越大角越圆
Android:topRightRadius 右上圆角半径
Android:bottomLeftRadius 右下圆角角半径
Android:topLeftRadius 左上圆角半径
Android:bottomRightRadius 左下圆角半径
<padding >填充
android:bottom="1.0dip" 底部填充
android:left="1.0dip" 左边填充
android:right="1.0dip" 右边填充
android:top="0.0dip" 上面填充
Selector
根据不同的选定状态来定义不同的现实效果 分为四大属性:
android:state_selected 是选中
android:state_focused 是获得焦点
android:state_pressed 是点击
android:state_enabled 是设置是否响应事件,指所有事件
android:state_window_focused 默认时的背景图片 引用位置:res/drawable/文件的名称.xml
使用的方法:
java代码中:R.drawable.文件的名称 XML中:Android:background="@drawable/文件的名称"
示例:
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:Android="http://schemas.android.com/apk/res/android">
<!-- 默认时的背景图片-->
<item Android:drawable="@drawable/pic1" />
<!-- 没有焦点时的背景图片 -->
<item
Android:state_window_focused="false"
android:drawable="@drawable/pic_blue"
/>
<!-- 非触摸模式下获得焦点并单击时的背景图片 -->
<item
Android:state_focused="true"
android:state_pressed="true"
android:drawable= "@drawable/pic_red"
/>
<!-- 触摸模式下单击时的背景图片-->
<item
Android:state_focused="false"
Android:state_pressed="true"
Android:drawable="@drawable/pic_pink"
/>
<!--选中时的图片背景-->
<item
Android:state_selected="true"
android:drawable="@drawable/pic_orange"
/>
<!--获得焦点时的图片背景-->
<item
Android:state_focused="true"
Android:drawable="@drawable/pic_green"
/>
</selector>

layer-list(多个shape)
将多个图片或上面两种效果按照顺序层叠起来
示例:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/android_red"
android:gravity="center" />
</item>
<item android:top="10dp" android:left="10dp">
<bitmap android:src="@drawable/android_green"
android:gravity="center" />
</item>
<item android:top="20dp" android:left="20dp">
<bitmap android:src="@drawable/android_blue"
android:gravity="center" />
</item>
</layer-list>

感觉很像多个drawable
三者可以结合使用
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item android:bottom="8.0dip">
<shape>
<solid android:color="#ffaaaaaa" />
</shape>
</item>
<item>
<shape>
<corners android:bottomLeftRadius="4.0dip" android:bottomRightRadius="4.0dip" android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />

<solid android:color="#ffaaaaaa" />

<padding android:bottom="1.0dip" android:left="1.0dip" android:right="1.0dip" android:top="0.0dip" />
</shape>
</item>
<item>
<shape>
<corners android:bottomLeftRadius="3.0dip" android:bottomRightRadius="3.0dip" android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />

<solid android:color="@color/setting_item_bgcolor_press" />
</shape>
</item>
</layer-list>
</item>
<item>
<layer-list>
<item android:bottom="8.0dip">
<shape>
<solid android:color="#ffaaaaaa" />
</shape>
</item>
<item>
<shape>
<corners android:bottomLeftRadius="4.0dip" android:bottomRightRadius="4.0dip" android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />

<solid android:color="#ffaaaaaa" />

<padding android:bottom="1.0dip" android:left="1.0dip" android:right="1.0dip" android:top="0.0dip" />
</shape>
</item>
<item>
<shape>
<corners android:bottomLeftRadius="3.0dip" android:bottomRightRadius="3.0dip" android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />

<solid android:color="@color/setting_item_bgcolor" />
</shape>
</item>
</layer-list>
</item>
</selector>

7. android渐变色自定义进度条多大

需求:下载中的颜色要自定义,要替换为另外的一个颜色 方法:就是在 <ProgressBar android:layout_weight="1" android:id="@+id/download_item_progressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="wrap_content" android:layout_height="15dip" android:progressDrawable="@drawable/progressbar_style"></ProgressBar> 在drawable中新建一个progressBar_style.xml文件, 这个属性进行设置,有两个方案: 第一,设置两张图片: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android=""> <item android:id="@android:id/background" android:drawable="@drawable/progressbar_not" /> <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/progressbar_not"> </item> <item android:id="@android:id/progress" android:drawable="@drawable/progressbar_selected"> </item> </layer-list> 第二种,设置背景颜色: <?xml version="1.0" encoding="utf-8"?> <item android:id="@android:id/background" > <shape> <corners android:radius="5dip" /> <gradient android:startColor="#666666" android:centerColor="#666666" android:centerY="0.75" android:endColor="#666666" android:angle="270" /> </shape> </item> <item android:id="@android:id/progress" > <clip> <shape> <corners android:radius="5dip" /> <gradient android:startColor="#da1f3e" android:centerColor="#da1f3e" android:centerY="0.75" android:endColor="#da1f3e" android:angle="270" /> </shape> </clip> </item> <item android:id="@android:id/secondaryProgress" > <clip> <shape> <corners android:radius="5dip" /> <gradient android:startColor="#fed7ec" android:centerColor="#fed7ec" android:centerY="0.75" android:endColor="#fed7ec" android:angle="270" /> </shape> </clip> </item> </layer-list> 其中的属性还要进一步研究具体作用,据文档翻译有设置角度,渐变的。

8. 在android中怎么至上而下渐变

这个是输出一层颜色渐变的效果,而你的是多层的,做法一样,弄几个小的的三角形同样的画法画到上面。而颜色的值是不可能是线性的值,你只能自己定义每层三角形的颜色,这个是你要做的。 这个我直接用NDK自带的HELLO-GL2给你弄的,就设置下三角形

9. 求教 android半圆弧形的进度条问题

package com.example.comt;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.RectF;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.view.View;

public class CircleView extends View {

Paint paint,textpaint;
RectF area;
int value = 100;
LinearGradient shader;

public CircleView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
// TODO Auto-generated constructor stub
}

public CircleView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
// TODO Auto-generated constructor stub
}

public CircleView(Context context) {
super(context);
init();
// TODO Auto-generated constructor stub
}

public void setProgress(int value){
this.value = value;
invalidate();
}

public void init() {
paint = new Paint();
paint.setStrokeWidth(50f);
paint.setColor(Color.WHITE);
paint.setStyle(Style.STROKE);
paint.setAntiAlias(true);
textpaint = new Paint();
textpaint.setTextSize(50f);
textpaint.setColor(Color.WHITE);
area = new RectF(100, 100, 500, 500);

shader =new LinearGradient(0, 0, 400, 0, new int[] {
Color.BLUE, Color.WHITE}, null,
Shader.TileMode.CLAMP);
paint.setShader(shader);

}

@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
canvas.drawColor(Color.GRAY);
canvas.drawArc(area, 120, 360*value/100 , false, paint);
canvas.drawText(value+"%", 270, 290, textpaint);
}

}

看下是不是你想要的,调用setprogress()既可调节圆环

10. android颜色渐变如何实现从四周往中心渐变 或者从中心往四周渐变 都行,不是 从左往右

android 颜色渐变是指通知xml或者java代码,设置相关参数,是界面的某个指定的视图显示成从开始位置的颜色,逐渐过度到结尾位置的颜色的技术。

android颜色渐变的分类有:

LinearGradient线性渐变

RadialGradient镜像渐变

SweepGradient角度渐变


一、LinearGradient线性渐变
顾名思义,是只颜色在一个直线方向上逐渐改变。

文件代码:

<?xmlversion="1.0"encoding="utf-8"?>
<shapexmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">

<gradient
android:endColor="#0000FF"
android:startColor="#FF0000"
android:type="linear"/>

</shape>

效果:

热点内容
新名图配置怎么样 发布:2024-05-19 09:31:30 浏览:94
php获取子节点 发布:2024-05-19 09:21:18 浏览:160
php生成html 发布:2024-05-19 09:20:24 浏览:795
keil编译步骤 发布:2024-05-19 08:58:12 浏览:702
ipad有哪些好用的c语言编译器 发布:2024-05-19 08:41:56 浏览:767
征途手游版脚本 发布:2024-05-19 08:38:11 浏览:165
安卓咪咕音乐怎么录制视频 发布:2024-05-19 07:56:06 浏览:838
如何搞出超大声的听声辨位安卓版 发布:2024-05-19 07:46:21 浏览:927
linux安全模式 发布:2024-05-19 07:27:25 浏览:176
为什么安卓手机安装不了cpk 发布:2024-05-19 07:22:21 浏览:313