Android中怎么自定義漸變顏色效果-創(chuàng)新互聯(lián)

Android中怎么自定義漸變顏色效果,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

創(chuàng)新互聯(lián)建站專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、做網(wǎng)站、寶山網(wǎng)絡(luò)推廣、小程序定制開(kāi)發(fā)、寶山網(wǎng)絡(luò)營(yíng)銷(xiāo)、寶山企業(yè)策劃、寶山品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供寶山建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:muchs.cn

xml定義漸變顏色

首先,你在drawable目錄下寫(xiě)一個(gè)xml,代碼如下

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="rectangle" >
  <gradient
    android:angle="270"
    android:endColor="#000000"
    android:startColor="#ffffff" />
  <corners
    android:bottomLeftRadius="5dip"
    android:bottomRightRadius="5dip"
    android:topLeftRadius="5dip"
    android:topRightRadius="5dip" />
</shape>

shape 節(jié)點(diǎn)配置的是圖形的形式,主要包括方形、圓形等,上邊代碼為方形,
gradient 節(jié)點(diǎn)主要配置起點(diǎn)顏色、終點(diǎn)顏色及中間點(diǎn)的顏色、坐標(biāo)、漸變效果(0,90,180從左到右漸變,270從上到下漸變)默認(rèn)從左到右
padding 節(jié)點(diǎn)主要配置上下左右的間距
corners 節(jié)點(diǎn)配置四周園腳的半徑

然后,你就可以隨意在代碼中或者xml布局中使用它了。

如此簡(jiǎn)單的配置,只要你知道顏色的rgb值,你就可以成為顏色達(dá)人。

代碼定義漸變顏色

Android平臺(tái)下實(shí)現(xiàn)漸變效果。在android.graphics中我們可以找到有關(guān)Gradient字樣的類(lèi),比如LinearGradient 線性漸變、RadialGradient徑向漸變和 角度漸變SweepGradient 三種,他們的基類(lèi)為android.graphics.Shader。為了顯示出效果,使用一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明。

一、LinearGradient線性漸變

在android平臺(tái)中提供了兩種重載方式來(lái)實(shí)例化該類(lèi)分別為,他們的不同之處為參數(shù)中第一種方法可以用顏色數(shù)組,和位置來(lái)實(shí)現(xiàn)更細(xì)膩的過(guò)渡效果,比如顏色采樣int[] colors數(shù)組中存放20種顏色,則漸變將會(huì)逐一處理。而第二種方法參數(shù)僅為起初顏色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)

使用實(shí)例如下:

Paint p=new Paint();
LinearGradient lg=new LinearGradient(0,0,100,100,Color.RED,Color.BLUE,Shader.TileMode.MIRROR);

參數(shù)一為漸變起初點(diǎn)坐標(biāo)x位置,參數(shù)二為y軸位置,參數(shù)三和四分辨對(duì)應(yīng)漸變終點(diǎn),最后參數(shù)為平鋪方式,這里設(shè)置為鏡像.

剛才Android開(kāi)發(fā)網(wǎng)已經(jīng)講到Gradient是基于Shader類(lèi),所以我們通過(guò)Paint的setShader方法來(lái)設(shè)置這個(gè)漸變,代碼如下:

p.setShader(lg);
canvas.drawCicle(0,0,200,p); //參數(shù)3為畫(huà)圓的半徑,類(lèi)型為float型。

二、 RadialGradient鏡像漸變

有了上面的基礎(chǔ),我們一起來(lái)了解下徑向漸變。和上面參數(shù)唯一不同的是,徑向漸變第三個(gè)參數(shù)是半徑,其他的和線性漸變相同。

RadialGradient(float x, float y, float radius, int[] colors, float[] positions, Shader.TileMode tile)
RadialGradient(float x, float y, float radius, int color0, int color1, Shader.TileMode tile)

三、 SweepGradient角度漸變

對(duì)于一些3D立體效果的漸變可以嘗試用角度漸變來(lái)完成一個(gè)圓錐形,相對(duì)來(lái)說(shuō)比上面更簡(jiǎn)單,前兩個(gè)參數(shù)為中心點(diǎn),然后通過(guò)載入的顏色來(lái)平均的漸變渲染。

SweepGradient(float cx, float cy, int[] colors, float[] positions)

對(duì)于最后一個(gè)參數(shù)SDK上的描述為:

May be NULL. The relative position of each corresponding color in the colors array, beginning with 0 and ending with 1.0. If the values are not monotonic, the drawing may produce unexpected results. If positions is NULL, then the colors are automatically spaced evenly.

所以Android123建議使用下面的重載方法,本方法一般為NULL即可。

SweepGradient(float cx, float cy, int color0, int color1)

或者直接創(chuàng)建一個(gè)drawable:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE); //設(shè)置沒(méi)標(biāo)題
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN , //全屏
           WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.login);//登錄界面
    GradientDrawable grad = new GradientDrawable(//漸變色
      Orientation.TOP_BOTTOM,
      new int[]{Color.BLACK, Color.WHITE}
    );
    getWindow().setBackgroundDrawable(grad);//設(shè)置漸變顏色
}

關(guān)于Android中怎么自定義漸變顏色效果問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

文章標(biāo)題:Android中怎么自定義漸變顏色效果-創(chuàng)新互聯(lián)
分享路徑:http://muchs.cn/article24/dejoce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)、網(wǎng)站導(dǎo)航、ChatGPT、Google、網(wǎng)站設(shè)計(jì)、軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司