㈠ android疯狂讲义 color怎么定义
工程res目录下的values目录,新建color.xml,
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="trans">#00000000</color>
<color name="blue">#0000ff</color>
<color name="trans_blue">#7f4A708B</color>
<color name="tras_black">#7f000000</color>
<!-- 透明 -->
<color name="transparent">#00000000</color>
<!-- 黑色 -->
<color name="black">#000000</color>
<!-- 白色 -->
<color name="white">#FFFFFF</color>
<!-- 浅灰色 -->
<color name="lightgrey">#C4C4C4</color>
<!-- 灰色 -->
<color name="grey">#999999</color>
<!-- 深灰色 -->
<color name="darkgrey">#D1D1D1</color>
<!-- 绿色 -->
<color name="green">#218868</color>
<!-- 海绿色 -->
<color name="lightgreen">#6db237</color>
<!-- 暗灰色 -->
<color name="dimgrey">#696969</color>
<!-- 天蓝色 -->
<color name="gray">#808080</color>
<!-- 雪白色 -->
<color name="floralwhite">#FFFAF0</color>
<!-- 红色 -->
<color name="red">#de1818</color>
<!-- 70%透明度 -->
<color name="sevenalpha">#AF000000</color>
</resources>
㈡ Android绘图之RadialGradient 放射渐变(11)
LinearGradient 和 SweepGradient,这次讲解RadialGradient;
RadialGradient被称为放射渐变,就是从中心向外圆形渐变。
两个构造函数,第一个构造函数可以实现两种颜色的渐变,第二个构造函数可以实现多个颜色的渐变。
参数说明:
centerX ,centerY:shader的中心坐标,开始渐变的坐标。
radius:渐变的半径,
centerColor,edgeColor:中心点渐变颜色,边界的渐变颜色,
colors:渐变颜色数组,
stoops:渐变位置数组,类似扫描渐变的positions数组,取值[0,1],中心点为0,半径到达位置为1.0f,
tileMode:shader未覆盖以外的填充模式。
构造函数:
RadialGradient(float centerX, float centerY, float radius, @ColorInt int centerColor, @ColorInt int edgeColor, @NonNull TileMode tileMode);
提供中心坐标,半径,颜色值,TileMode
Stops数组取值为[0-1],一般为从小到大,表示每个位置对应的颜色值,如果stops不为null,colors必须和stops一一对应,否则可能导致崩溃,如果stops为null,各颜色从中心到边界线性渐变。
stops数组为null,四种颜色线性渐变:
stops数组不为null:
如果数组多余颜色个数:
大致做个小例子,如果需要线上使用需要考虑很多问题,类似ondraw最好不要声明对象等:
替换为多颜色 private int[] colors = {Color.YELLOW, Color.RED, Color.BLUE, Color.GREEN};
android绘图之Paint(1)
android绘图之Canvas基础(2)
Android绘图之Path(3)
Android绘图之drawText绘制文本相关(4)
Android绘图之Canvas概念理解(5)
Android绘图之Canvas变换(6)
Android绘图之Canvas状态保存和恢复(7)
Android绘图之PathEffect (8)
Android绘图之LinearGradient线性渐变(9)
Android绘图之SweepGradient(10)
Android绘图之RadialGradient 放射渐变(11)
Android绘制之BitmapShader(12)
Android绘图之ComposeShader,PorterDuff.mode及Xfermode(13)
Android绘图之drawText,getTextBounds,measureText,FontMetrics,基线(14)
Android绘图之贝塞尔曲线简介(15)
Android绘图之PathMeasure(16)
Android 动态修改渐变 GradientDrawable
㈢ android 颜色过渡
Android平台下实现渐变效果。在android.graphics中我们可以找到有关Gradient字样的类,比如LinearGradient 线性渐变、RadialGradient径向渐变和 角度渐变SweepGradient 三种,他们的基类为android.graphics.Shader。为了显示出效果,使用一个简单的例子来说明。
一、LinearGradient线性渐变
在android平台中提供了两种重载方式来实例化该类分别为,他们的不同之处为参数中第一种方法可以用颜色数组,和位置来实现更细腻的过渡效果,比如颜色采样int[] colors数组中存放20种颜色,则渐变将会逐一处理。而第二种方法参数仅为起初颜色color0和最终颜色color1。
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)
使用实例如下:
Paint p=new Paint();
LinearGradient lg=new LinearGradient(0,0,100,100,Color.RED,Color.BLUE,Shader.TileMode.MIRROR); //
参数一为渐变起初点坐标x位置,参数二为y轴位置,参数三和四分辨对应渐变终点,最后参数为平铺方式,这里设置为镜像.
刚才Android开发网已经讲到Gradient是基于Shader类,所以我们通过Paint的setShader方法来设置这个渐变,代码
㈣ 怎么在Android中设置一个color.xml快速获取颜色
可在string.xml中修改值,这个简单;在代码中修改也可以,不过之前string.xml要为某id事先预留变量,代码能够修改它~例如说, <string name="a">今年是%1$d年</掘圆则string> java代码中可用 String a = getResources().getString(R.string.a); String b = String.format(a, 2011); 将%1$d替换为2011 简单解释%1$d,1表示a中有一个值判棚需要修改;d表示是整型。 若是要有两个就要再写多个%2$d 若是字符串,就写成%1$s 我想你腔盯是想知道第二种方法吧?!呵呵~
㈤ android 从一个颜色渐变到另外一个颜色
画图的话
LinearGradientlg=newLinearGradient(statrX,statrY,statrX,
stopY,newint[]{Color.rgb(5,254,4),
Color.rgb(189,254,0),Color.rgb(255,142,4),
Color.rgb(248,0,1),Color.rgb(148,0,78),
Color.rgb(121,2,43)},newfloat[]{0,0.2f,0.4f,
0.6f,0.8f,1.0f},TileMode.MIRROR);
//这个是y轴上的变化从绿色到橘黄色到大红色到黑红色。。。
//float数组相当于把Y轴平分为5段
paint.setShader(lg);
线程的话
Handlerhandler=newHandler(){
publicvoidhandleMessage(android.os.Messagemsg){
switch(msg.what){
case100:
textView.setTextColor(colors[msg.arg1]);//颜色的数组,和下面的for的次数要等
break;
default:
break;
}
};
};
privatevoidhuatu(){
//TODOAuto-generatedmethodstub
newThread(newRunnable(){
@Override
publicvoidrun(){
//TODOAuto-generatedmethodstub
try{
for(inti=0;i<5;i++){
Thread.sleep(200);
Messagemessage=newMessage();
message.what=100;
message.arg1=i;
handler.sendMessage(message);
}
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}).start();
}
㈥ android 控件数组定义和使用问题
bv=new Button[10];
你只是创建了一个数组用来存放10个Button.
但是你没有对其中的Button初始化
bv[i] = null;改成bv[i] = new Button(this);就可以了
㈦ android位图两个点的Color.red(int)+Color.blue+Color.green相等表示什么意思
Color.red(dst[x0]) + Color.green(dst[x0]) + Color.blue(dst[x0]) == Color.red(dst[x1]) + Color.green(dst[x1]) + Color.blue(dst[x1]) 相等就表示颜色相同呗
450是蓝色 0x00c3ff
可以了解下rgb 颜色