導航:首頁 > 操作系統 > android上下漸變

android上下漸變

發布時間:2023-04-07 12:58:15

android怎麼用paint實現圖像的漸變出現

在android.graphics中提供了有關Gradient字樣的類,例如LinearGradient線性漸變、RadialGradient徑向漸變和SweepGradient角度漸變三種,他們的基類為android.graphics.Shader。為了演示圖像漸變效果,下面給出一個簡單的實例。一、LinearGradient線性漸變在android平台中提供了兩種重載方式來實例化該類分別為,他們的不同之處為參數中第一種方法可以用顏色數組,和位置來實現更細膩的過渡效果,比如顏色采樣int[]colors數組中存放20種顏色,則漸變將會逐一處理。而第二種方法參數僅為起初顏色color0和最終顏色color1。LinearGradient(floatx0,floaty0,floatx1,floaty1,int[]colors,float[]positions,Shader.TileModetile)LinearGradient(floatx0,floaty0,floatx1,floaty1,intcolor0,intcolor1,Shader.TileModetile)使用實例如下:Paintp=newPaint();LinearGradientlg=newLinearGradient(0,0,100,100,Color.RED,Color.BLUE,Shader.TileMode.MIRROR);//參數一為漸變起初點坐標x位置,參數二為y軸位置,參數三和四分辨對應漸變終點,最後參數為平鋪方式,這里設置為鏡像剛才已經講到Gradient是基於Shader類,所以我們通過Paint的setShader方法來設置這個漸變,代碼如下:p.setShader(lg);canvas.drawCicle(0,0,200,p);//參數3為畫圓的半徑,類型為float型。二、RadialGradient鏡像漸變有了上面的基礎,我們一起來了解下徑向漸變。和上面參數唯一不同的是,徑向漸變第三個參數是半徑,其他的和線性漸變相同。RadialGradient(floatx,floaty,floatradius,int[]colors,float[]positions,Shader.TileModetile)RadialGradient(floatx,floaty,floatradius,intcolor0,intcolor1,Shader.TileModetile)三、SweepGradient角度漸變對於一些3D立體效果的漸變可以嘗試用角度漸變來完成一個圓錐形,相對來說比上面更簡單,前兩個參數為中心點,然後通過載入的顏色來平均的漸變渲染。SweepGradient(floatcx,floatcy,int[]colors,float[]positions)//對於最後一個參數SDK上的描述為MaybeNULL.,beginningwith0andendingwith1.0.Ifthevaluesarenotmonotonic,.IfpositionsisNULL,.,所以建議使用下面的重載方法,本方法一般為NULL即可。SweepGradient(floatcx,floatcy,intcolor0,intcolor1)到此,希望大家對圖像特效處理有了一定的認識,了解這些對打好Android游戲開發的基礎很有好處。轉載

Ⅱ 如何通過android實現alpha漸變動畫效果

Android動畫分為四種:alpha(漸變透明度),scale(漸變尺寸伸縮),translate(畫面轉換位置移動),rotate(畫面轉移旋轉);今天先寫第一個動畫alpha。
動畫效果有兩種實現:
一、在xml中定義:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 透明度控制動畫效果 alpha
浮點型值:
fromAlpha 屬性為動畫起始時透明度
toAlpha 屬性為動畫結束時透明度
說明:
0.0表示完全透明
1.0表示完全不透明
以上值取0.0-1.0之間的float數據類型的數字

長整型值:
ration 屬性為動畫持續時間
說明:
時間以毫秒為單位
-->

<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:ration="5000"
/>

</set>
二、在頁面Activity中聲明:
Animation animation = new AlphaAnimation(0.1f, 1.0f);
animation.setDuration(5000);

完成動畫漸變透明度的參數設定後,我們就要開始在應用中使用它:
public class SplashActivity extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);

View view = View.inflate(SplashActivity.this, R.layout.welcome, null);
setContentView(view);
//動畫效果參數直接定義
Animation animation = new AlphaAnimation(0.1f, 1.0f);
animation.setDuration(5000);

//動畫效果從XMl文件中定義
// Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha);
view.setAnimation(animation);
}
}
這樣我們就完成了預定的動畫效果,但是我們的最終目的是動畫效果完畢以後跳轉到相應的頁面,所以我們對動畫添加了監聽:
animation.setAnimationListener(new AnimationListener() {

@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub

}

@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub

}

@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
Intent intent = new Intent(SplashActivity.this,MainActivity.class);
startActivity(intent);
}
});
這樣的話,我們在動畫的持續時間中預載入我們的資源,當動畫結束以後跳轉到我們的主頁面;
詳細步驟和完整源碼可以參考:http://www.cnblogs.com/sishuiliuyun/p/3167581.html

Ⅲ 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 滑動漸變的TitleBar

首先看下效果

進入頁面後,是一個列表和頂部是一張圖片的布局,滑動列表, TitleBar 隨著上下滑動而"若隱若現"。感覺是不是像 CoordinatorLayout CollapsingToolbarLayout 的效果

其實不太一樣, CoordinatorLayout CollapsingToolbarLayout 的實現效果更多,並且Gradle需要單獨引入Support包

第一個的效果,只要是 ScrollView ListView RecycleView 都可以實現

以ListView為例,首先ListView設置數據,添加Header,然後設置滑動事件

ScrollViewAlphaListener 是自定義的滑動Listener。 setAlphaView 方法分別設置了: 上下文對象 頂部圖片 根布局 ~

看下ScrollViewAlphaListener的主要內容

ScrollViewAlphaListener 是 implements AbsListView.OnScrollListener,所以必須實現其 onScroll 方法。在 onScroll 方法中根據頂部圖片的位置高度和根布局滑動Y值,算出Alpha值。當然這里也考慮了 狀態欄的高度(ExtendUtils.getStatusBarHeight(mContext))

最後在 ScrollViewAlphaListener 的回調中,處理對應View的漸變效果

這樣就實現了滑動漸變的效果TitleBar了~ ScrollView RecycleView 的實現都是根據頂部圖片和根布局滑動的Y值來計算的,大同小異~

Ⅳ android 如何實現背景圖片漸變切換

解決方案1:
其他的和線性漸變相同。為了演 示圖像漸變效果。

一, float radius, float x1。

SweepGradient(float cx。

LinearGradient(float x0,所以建議使用下面的重載方法,他們的基類為android、RadialGradient鏡像漸變
有了上面的基礎. If positions is NULL,代碼如下,他們的不同之處為參數中第一種方法可以用顏色數組, int color1, float radius;/,然後通過載入的顏色來平均的漸變渲染, the drawing may proce unexpected results, int[] colors.RED,p).TileMode tile)

使用實例如下.TileMode, float[] positions; /, int color0,最後參數為平鋪方式, Shader,100, float y0. If the values are not monotonic.graphics, float y1,這里設置為鏡像
剛才已經講到Gradient是基於Shader類,前兩個參數為中心點.TileMode tile)

LinearGradient(float x0.drawCicle(0;
canvas.Shader,參數三和四分辨對應漸變終點.TileMode tile)

三, int color0,所以我們通過Paint的setShader方法來設置這個漸變,200,則漸變將會逐一處理。
二, float[] positions,徑向漸變第三個參數是半徑, int[] colors在android, beginning with 0 and ending with 1,本方法一般為NULL即可.、SweepGradient角度漸變
對於一些3D立體效果的漸變可以嘗試用角度漸變來完成一個圓錐形, float cy. The relative position of each corresponding color in the colors array.setShader(lg),和位置來實現更細膩的過渡效果, 比如顏 色采樣int[] colors數組中存放20種顏色, float x1,Shader。

RadialGradient(float x, float[] positions) /。而第二種方法參數僅為起初顏色color0和最終顏色color1, Shader。和上面參數唯一不同的是, then the colors are automatically spaced evenly,0, float y,了解這些對打好Android游戲開發的基礎很有好處;對於最後一個參數SDK上的描述為May be NULL.graphics中提供了有關Gradient字樣的類, Shader。

SweepGradient(float cx;參數3為畫圓的半徑;
LinearGradient lg=new LinearGradient(0,希望大家對圖像特效處理有了一定的認識,0,參數二為y軸位置,我們一起來了解下徑向漸變;/,類型為float型,相對來說比上面更簡單,Color; /, int color1)

到此,100,Color.TileMode tile)

RadialGradient(float x.MIRROR).BLUE, float y0, int color0,例如LinearGradient線性漸變:

p, int color1、LinearGradient線性漸變
在android平台中提供了兩種重載方式來實例化該類分別為,下面給出一個簡單的實例, int[] colors, float cy, Shader, float y1;參數一為漸變起初點坐標x位置:

Paint p=new Paint(), float y.0、 RadialGradient徑向漸變和SweepGradient角度漸變三種。

Ⅵ 安卓原生4.4,怎麼關閉頁面滑動上下漸變大小特效(如圖)

設置——開發者人員選項——窗口過渡動畫關閉即可。
也可以設置為0.5x

Ⅶ android 怎麼自定義顏色漸變

1.在res/drawable/里新建XML文件(background_color.xml)
內容:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#000000"
android:endColor="#FFFFFF"
android:angle="90"
/>

</shape>
備:angle(角度)的值只可為:45 90 135 180等45的倍數

2.在res/layout里使用時:
顏色設置段:Android:src="@drawable/background_color

Ⅷ android 動態設置按鈕背景的漸變顏色

在一個xml文件中定義需要用到gradient,然後用drawable設置,大致是這樣

Ⅸ 在android中怎麼至上而下漸變

這個是輸出一層顏色漸變的效果,而你的是多層的,做法一樣,弄幾個小的的三角形同樣的畫法畫到上面。而顏色的值是不可能是線性的值,你只能自己定義每層三角形的顏色,這個是你要做的。 這個我直接用NDK自帶的HELLO-GL2給你弄的,就設置下三角形

Ⅹ 怎麼在android上面做出根據形狀來漸變的效果

<shape> Android:shape=["rectangle" | "oval" | "line" | "ring"] 其中rectagle矩形,oval橢圓,line水平直線,ring環形
<shape>中子節點的常用屬性:
<gradient> 漸變
Android:startColor 起始顏色
Android:endColor 結束顏色
Android:angle 漸變角度,0從左到右,90表示從下到上,數值為45的整數倍,默認為0;
Android:type 漸變的樣式 liner線性漸變 radial環形漸變 sweep <solid > 填充
Android:color 填充的顏色
<stroke >描邊
Android:width 描邊的寬度
Android:color 描邊的顏色
Android:dashWidth 表示'-'橫線的寬度
Android:dashGap 表示'-'橫線之間的距離
<corners >圓角
Android:radius 圓角的半徑 值越大角越圓
Android:topRightRadius 右上圓角半徑
Android:bottomLeftRadius 右下圓角角半徑
Android:topLeftRadius 左上圓角半徑
Android:bottomRightRadius 左下圓角半徑
<padding >填充
android:bottom="1.0dip" 底部填充
android:left="1.0dip" 左邊填充
android:right="1.0dip" 右邊填充
android:top="0.0dip" 上面填充
Selector
根據不同的選定狀態來定義不同的現實效果 分為四大屬性:
android:state_selected 是選中
android:state_focused 是獲得焦點
android:state_pressed 是點擊
android:state_enabled 是設置是否響應事件,指所有事件
android:state_window_focused 默認時的背景圖片 引用位置:res/drawable/文件的名稱.xml
使用的方法:
Java代碼中:R.drawable.文件的名稱 XML中:Android:background="@drawable/文件的名稱"
示例:
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:Android="http://schemas.android.com/apk/res/android">
<!-- 默認時的背景圖片-->
<item Android:drawable="@drawable/pic1" />
<!-- 沒有焦點時的背景圖片 -->
<item
Android:state_window_focused="false"
android:drawable="@drawable/pic_blue"
/>
<!-- 非觸摸模式下獲得焦點並單擊時的背景圖片 -->
<item
Android:state_focused="true"
android:state_pressed="true"
android:drawable= "@drawable/pic_red"
/>
<!-- 觸摸模式下單擊時的背景圖片-->
<item
Android:state_focused="false"
Android:state_pressed="true"
Android:drawable="@drawable/pic_pink"
/>
<!--選中時的圖片背景-->
<item
Android:state_selected="true"
android:drawable="@drawable/pic_orange"
/>
<!--獲得焦點時的圖片背景-->
<item
Android:state_focused="true"
Android:drawable="@drawable/pic_green"
/>
</selector>

layer-list(多個shape)
將多個圖片或上面兩種效果按照順序層疊起來
示例:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/android_red"
android:gravity="center" />
</item>
<item android:top="10dp" android:left="10dp">
<bitmap android:src="@drawable/android_green"
android:gravity="center" />
</item>
<item android:top="20dp" android:left="20dp">
<bitmap android:src="@drawable/android_blue"
android:gravity="center" />
</item>
</layer-list>

感覺很像多個drawable
三者可以結合使用
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item android:bottom="8.0dip">
<shape>
<solid android:color="#ffaaaaaa" />
</shape>
</item>
<item>
<shape>
<corners android:bottomLeftRadius="4.0dip" android:bottomRightRadius="4.0dip" android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />

<solid android:color="#ffaaaaaa" />

<padding android:bottom="1.0dip" android:left="1.0dip" android:right="1.0dip" android:top="0.0dip" />
</shape>
</item>
<item>
<shape>
<corners android:bottomLeftRadius="3.0dip" android:bottomRightRadius="3.0dip" android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />

<solid android:color="@color/setting_item_bgcolor_press" />
</shape>
</item>
</layer-list>
</item>
<item>
<layer-list>
<item android:bottom="8.0dip">
<shape>
<solid android:color="#ffaaaaaa" />
</shape>
</item>
<item>
<shape>
<corners android:bottomLeftRadius="4.0dip" android:bottomRightRadius="4.0dip" android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />

<solid android:color="#ffaaaaaa" />

<padding android:bottom="1.0dip" android:left="1.0dip" android:right="1.0dip" android:top="0.0dip" />
</shape>
</item>
<item>
<shape>
<corners android:bottomLeftRadius="3.0dip" android:bottomRightRadius="3.0dip" android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />

<solid android:color="@color/setting_item_bgcolor" />
</shape>
</item>
</layer-list>
</item>
</selector>

閱讀全文

與android上下漸變相關的資料

熱點內容
linux用戶密碼忘記 瀏覽:240
gb壓縮天然氣 瀏覽:633
圖片拼接不壓縮app 瀏覽:668
我的世界如何編程 瀏覽:84
vue反編譯代碼有問題 瀏覽:948
linuxshell字元串連接字元串 瀏覽:51
androidviewpager刷新 瀏覽:438
python編程計算平均分 瀏覽:678
加密數字貨幣市值查詢 瀏覽:692
時尚商圈app怎麼樣 瀏覽:584
stacklesspython教程 瀏覽:138
用命令行禁用135埠 瀏覽:212
linux防火牆編程 瀏覽:627
pdf閱讀器刪除 瀏覽:979
考研人如何緩解壓力 瀏覽:822
買電暖壺哪個app便宜 瀏覽:505
洛克王國忘記伺服器了怎麼辦 瀏覽:782
為什麼cf登錄伺服器沒反應 瀏覽:695
伺服器如何獲取文件列表 瀏覽:674
creo五軸編程光碟 瀏覽:14