Android應(yīng)用中設(shè)置alpha值來(lái)制作透明與漸變效果的實(shí)例
Android系統(tǒng)支持的顏色是由4個(gè)值組成的,前3個(gè)為RGB,也就是我們常說(shuō)的三原色(紅、綠、藍(lán)),最后一個(gè)值是A,也就是Alpha。這4個(gè)值都在0~255之間。顏色值越小,表示該顏色越淡,顏色值越大,表示該顏色越深。如果RGB都是0,就是黑色,如果都為255,就是白色。Alpha也需要在0~255之間變化。Alpha的值越小,顏色就越透明,Alpha的值越大,顏色就不透明。當(dāng)Alpha的值為0時(shí),顏色完全透明,完全透明的位圖或者圖形從View上消失。當(dāng)Alpha的值為255時(shí),顏色不透明。從Alpha的特性可知,設(shè)置顏色的透明度實(shí)際上就是設(shè)置Alpha值。
半透明:<Button android:background="#e0000000" ... />
透明:<Button android:background="#00000000" ... />
顏色和不透明度 (alpha) 值以十六進(jìn)制表示法表示。任何一種顏色的值范圍都是 0 到 255(00 到 ff)。對(duì)于 alpha,00 表示完全透明,ff 表示完全不透明。表達(dá)式順序是“aabbggrr”,其中aa=alpha(00 到 ff);bb=blue(00 到 ff);gg=green(00 到 ff);rr=red(00 到 ff)。例如,如果您希望對(duì)某疊加層應(yīng)用不透明度為 50% 的藍(lán)色,則應(yīng)指定以下值:7fff0000
設(shè)置顏色的透明度可以通過(guò)Paint類(lèi)的setAlpha方法來(lái)完成。因?yàn)樽鲰?xiàng)目中,很多時(shí)候不需要讓照片完全透明的,所以試驗(yàn)做了一個(gè)可以調(diào)節(jié)圖片透明度的程序。
例1
本例子通過(guò)一個(gè)滑桿(SeekBar)組件改變位圖中顏色的Alpha值(透明度)。顯示位圖的MyView類(lèi)的代碼如下:
private class MyView extends View
{
private Bitmap bitmap;
public MyView(Context context)
{
super(context);
InputStream is =getResources().openRawResource(R.drawable.image);
bitmap = BitmapFactory.decodeStream(is);
setBackgroundColor(Color.WHITE);
}
@Override
protected void onDraw(Canvas canvas)
{
Paint paint = new Paint();
paint.setAlpha(alpha);
canvas.drawBitmap(bitmap, new Rect(0, 0, bitmap.getWidth(), bitmap
.getHeight()), new Rect(10, 10, 310, 235), paint);
}
}
上面代碼中的drawBitMap方法的第2個(gè)參數(shù)表示原位圖的復(fù)制區(qū)域,在本例中表示復(fù)制整個(gè)原位圖。第3個(gè)參數(shù)表示繪制的目標(biāo)區(qū)域。
SeekBar組件的onProgressChanged時(shí)間方法的代碼如下:
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser)
{
alpha = progress;
setTitle("alpha:" + progress);
myView.invalidate();
}
運(yùn)行本例,將滑桿移動(dòng)到靠左和靠右的位置,將會(huì)看到如下面兩個(gè)圖的效果:


例2
Alpha透明漸變動(dòng)畫(huà) 。

<alpha>標(biāo)簽為alpha透明度節(jié)點(diǎn)
android:fromAlpha="1.0" 設(shè)置動(dòng)畫(huà)起始透明度為1.0 表示完全不透明
android:toAlpha="0.0"設(shè)置動(dòng)畫(huà)結(jié)束透明度為0.0 表示完全透明
也就是說(shuō)alpha的取值范圍為0.0 - 1.0 之間
這個(gè)動(dòng)畫(huà)布局設(shè)置動(dòng)畫(huà)從完全不透明漸變到完全透明。
<?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:fromAlpha="1.0" android:toAlpha="0.0" android:repeatCount="infinite" android:duration="2000"> </alpha>
代碼實(shí)現(xiàn)
import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
public
class AlphaActivity extends Activity {
/**顯示動(dòng)畫(huà)的ImageView**/
ImageView mImageView = null;
/**透明動(dòng)畫(huà)**/
Animation mAnimation = null;
@Override
public
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.translate);
/**拿到ImageView對(duì)象**/
mImageView = (ImageView)findViewById(R.id.imageView);
/**加載透明動(dòng)畫(huà)**/
mAnimation = AnimationUtils.loadAnimation(this, R.anim.alpha);
/**播放透明動(dòng)畫(huà)**/
mImageView.startAnimation(mAnimation);
}
}
- android控件實(shí)現(xiàn)多張圖片漸變切換
- Android開(kāi)發(fā)之Activity全透明漸變切換方法
- Android編程實(shí)現(xiàn)圖片背景漸變切換與圖層疊加效果
- android自定義進(jìn)度條漸變色View的實(shí)例代碼
- android中實(shí)現(xiàn)背景圖片顏色漸變方法
- Android開(kāi)發(fā)之圖形圖像與動(dòng)畫(huà)(二)Animation實(shí)現(xiàn)圖像的漸變/縮放/位移/旋轉(zhuǎn)
- Android實(shí)現(xiàn)底部彈出PopupWindow背景逐漸變暗效果
- Android 頂部標(biāo)題欄隨滑動(dòng)時(shí)的漸變隱藏和漸變顯示效果
- Android ScrollView滑動(dòng)實(shí)現(xiàn)仿QQ空間標(biāo)題欄漸變
- Android使用TransitionDrawable漸變切換多張圖片
相關(guān)文章
Android利用ContentProvider初始化組件的踩坑記錄
做Android SDK開(kāi)發(fā)的時(shí)候,一般我們會(huì)將初始化的方法封裝,然后讓調(diào)用SDK的開(kāi)發(fā)者在Application的onCreate方法中進(jìn)行初始化,下面這篇文章主要給大家介紹了關(guān)于Android利用ContentProvider初始化組件的踩坑記錄,需要的朋友可以參考下2022-04-04
Android 系統(tǒng)net和wap接入點(diǎn)的區(qū)別
這篇文章主要介紹了Android 系統(tǒng)net和wap接入點(diǎn)的區(qū)別的相關(guān)資料,需要的朋友可以參考下2016-09-09
圖文講解Android的ImageView類(lèi)中的ScaleType屬性設(shè)置
這篇文章主要介紹了Android的ImageView類(lèi)中的ScaleType屬性設(shè)置,同時(shí)文中還講了實(shí)現(xiàn)圖片寬度100%ImageView寬度且高度按比例自動(dòng)伸縮的方法,需要的朋友可以參考下2016-03-03
Android自定義一個(gè)圖形單點(diǎn)移動(dòng)縮小的效果
本文通過(guò)實(shí)例代碼給大家介紹了android 自定義圖形單點(diǎn)移動(dòng)縮小效果,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-08-08
Android Studio3.6.3 當(dāng)前最新版本數(shù)據(jù)庫(kù)查找與導(dǎo)出方法(圖文詳解)
這篇文章主要介紹了Android Studio3.6.3 當(dāng)前最新版本數(shù)據(jù)庫(kù)查找與導(dǎo)出方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Android實(shí)現(xiàn)斷點(diǎn)多線程下載
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)斷點(diǎn)多線程下載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12

