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

 我来答
百度网友1a87472
2015-07-12 · TA获得超过2248个赞
知道小有建树答主
回答量:1090
采纳率:44%
帮助的人:350万
展开全部

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

android颜色渐变的分类有:

LinearGradient线性渐变

RadialGradient镜像渐变

 SweepGradient角度渐变


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

文件代码:

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

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

</shape>

效果:


二、RadialGradient镜像渐变
镜像渐变就是楼主问的问题了:只要将type设置为oval,然后增加

        android:gradientRadius

属性。

楼主特殊要求是圆形的话,需要在shape里面添加
android:shape="oval"

文件代码:

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

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

</shape>

效果:


三、 SweepGradient角度渐变

是指以中心点为射线的一个断点,顺时针旋转所扫过的区域,颜色逐渐改变的一种渐变方式

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

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

</shape>

效果图:

czqname
2011-10-13 · TA获得超过224个赞
知道小有建树答主
回答量:139
采纳率:100%
帮助的人:169万
展开全部
<gradient>
Specifies a gradient color for the shape.
attributes:
android:angle
Integer. The angle for the gradient, in degrees. 0 is left to right, 90 is bottom to top. It must be a multiple of 45. Default is 0.
android:centerX
Float. The relative X-position for the center of the gradient (0 - 1.0). Does not apply when android:type="linear".
android:centerY
Float. The relative Y-position for the center of the gradient (0 - 1.0). Does not apply when android:type="linear".
android:centerColor
Color. Optional color that comes between the start and end colors, as a hexadecimal value or color resource.
android:endColor
Color. The ending color, as a hexadecimal value or color resource.
android:gradientRadius
Float. The radius for the gradient. Only applied when android:type="radial".
android:startColor
Color. The starting color, as a hexadecimal value or color resource.
android:type
Keyword. The type of gradient pattern to apply. Valid values are:
Value Description
"linear" A linear gradient. This is the default.
"radial" A radial gradient. The start color is the center color.
"sweep" A sweeping line gradient.

用 radial type 再设一下 android:centerY android:centerX
追问
表示看不懂
追答
看看android  官方文档 里面 resource  shapeDrawable  的定义  。
还有 看看 android.graphics.drawable.GradientDrawable 类 。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gaogaf
2011-10-13 · TA获得超过1289个赞
知道小有建树答主
回答量:610
采纳率:0%
帮助的人:368万
展开全部
使用RadialGradient即可。
定义一个Paint,然后调用setShader方法将RadialGradient传进去。
然后调用canvas的draw方法将Paint对象传进去即可。
追问
能给哥简单的代码示例么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式