㈠ 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 顏色