⑴ 怎麼在android上面做出根據形狀來漸變的效果
您好,希望以下回答能幫助您
這個是輸出一層顏色漸變的效果,而你的是多層的,做法一樣,弄幾個小的的三角形同樣的畫法畫到上面。而顏色的值是不可能是線性的值,你只能自己定義每層三角形的顏色,這個是你要做的。
這個我直接用NDK自帶的HELLO-GL2給你弄的,就設置下三角形頂點和改了shader部分的代碼而已。
原理很簡單,設置5個頂點,第一個頂點為三角形中心頂點坐標,其他四的坐標為,三角形三個頂點坐標,其中第2和第5個頂點一樣。繪制三角形的時候使用扇形繪制。
中間頂點一個顏色,其他4個頂點為另一個顏色。
多層漸變就加幾個小點的三角形然後將顏色設置好覆蓋上去。
如您還有疑問可繼續追問。
⑵ Android TextView 漸變色
簡單的實現方式:
/**
* 設置TextView 的顏色漸變
*/
public void setTextViewStyles(TextView text) {
// LinearGradient 前四個參修改可以有不同的方向哦
LinearGradient mLinearGradient =new LinearGradient(0, 0, 0,
text.getPaint().getTextSize(), Color.parseColor("#FFD800"),
Color.parseColor("#FFC107"), Shader.TileMode.CLAMP);
text.getPaint().setShader(mLinearGradient);
text.invalidate();
}
寫在最後: 方式有很多種, 我就不一一列舉啦~ 謝謝
⑶ android 里用shape畫圓,怎麼填充顏色
Android裡面使用shape設置控制項的外形,例如一些圓角、填充的背景顏色、以及一些漸變的效果等,所以設置填充顏色,可通過設置shape.xml文件里的如下屬性:
<solidandroid:color="@color/common_red"/>
將shape文件放到android的button、textview組件上,就可以有填充背景顏色的效果,完整的代碼如下:
1.shape.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
android:useLevel="false">
<solidandroid:color="@color/common_red"/>
<padding
android:left="2dp"
android:top="1dp"
android:right="2dp"
android:bottom="1dp"/>
<solid
android:color="@color/common_red"/>
<stroke
android:width="1dp"
android:color="@android:color/white"/>
<sizeandroid:width="15dp"
android:height="15dp"/>
</shape>
2.把以上代碼添加到drawable裡面、通過background引用就可以了
<TextView
android:id="@id/message_category_unread_count"
style="@style/comm_text_style_14_aaaaaa"
android:layout_marginLeft="70dp"
android:layout_marginTop="5dp"
android:background="@drawable/shape"
android:gravity="center"
android:textSize="@dimen/text_size_comment_20"
android:text="7"
android:textColor="@android:color/white"/>
效果如下圖:
⑷ Android View — Gradient 漸變
Android 支持三種顏色漸變, LinearGradient(線性漸變) RadialGradient (徑向漸變) SweepGradient(掃描漸變)。這三種漸變繼承自android.graphics.Shader, Paint 類通過setShader支持漸變。
線性漸變就是在線性方向的的漸變。有兩個構造函數,
第二種 構造函數是第一種的簡化版,只支持兩種顏色。
RadialGradient 是圓環一樣的的漸變,RadialGradient 同樣是兩個構造函數,
1.float centerX, float centerY 漸變的中心點 圓心
2.float radius 漸變的半徑
3.int[] colors 漸變顏色數組
4.float[] stops 和顏色數組對應, 每種顏色在漸變方向上所佔的百分比取值[0, 1]
5.Shader.TileMode tileMode 表示繪制完成,還有剩餘空間的話的繪制模式。
1.float centerX, float centerY 漸變的中心點 圓心
2.float radius 漸變的半徑
3.int centerColor, int edgeColor 中心點顏色和邊緣顏色
4.Shader.TileMode tileMode 表示繪制完成,還有剩餘空間的話的繪制模式
SweepGradient 是和角度有關的漸變。以某一點為圓心,隨著角度的大小發生漸變。
1.float cx, float cy 中心點坐標
2.int[] colors 顏色數組
3.float[] positions 數組顏色在漸變方向上所佔的百分比
1.float cx, float cy 中心點坐標
2.int color0, int color1 開始顏色 結束顏色
在LinearGradient RadialGradient 漸變中,構造函數的最後一個參數為 Shader.TileMode 類型,決定了如果View還有剩餘空間,如何繪制。
從上到下依次為:CLAMP REPEAT MIRROR
從上到下依次為:CLAMP REPEAT MIRROR
一些背景的漸變通過定義 Shape Drawable 來實現。Shape Drawable 有gradient 屬性。
⑸ 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 顏色漸變是指通知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>
效果:
⑺ android控制項背景顏色動態隨機漸變
這個你只能使用shape來完成。因為是點擊後隨機變,不能使用xml寫死的那種,你得用java代碼來生成和配置GradientDrawable,設置不同的color.如果不會用,可以參照: