欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android應(yīng)用中設(shè)置alpha值來制作透明與漸變效果的實(shí)例

 更新時間:2016年04月28日 16:19:19   作者:pku_android  
這篇文章主要介紹了Android應(yīng)用中設(shè)置alpha值來制作透明與漸變效果的實(shí)例,展示了基礎(chǔ)的透明漸變動畫的編寫方法,需要的朋友可以參考下

Android系統(tǒng)支持的顏色是由4個值組成的,前3個為RGB,也就是我們常說的三原色(紅、綠、藍(lán)),最后一個值是A,也就是Alpha。這4個值都在0~255之間。顏色值越小,表示該顏色越淡,顏色值越大,表示該顏色越深。如果RGB都是0,就是黑色,如果都為255,就是白色。Alpha也需要在0~255之間變化。Alpha的值越小,顏色就越透明,Alpha的值越大,顏色就不透明。當(dāng)Alpha的值為0時,顏色完全透明,完全透明的位圖或者圖形從View上消失。當(dāng)Alpha的值為255時,顏色不透明。從Alpha的特性可知,設(shè)置顏色的透明度實(shí)際上就是設(shè)置Alpha值。
半透明:<Button android:background="#e0000000" ... />
透明:<Button android:background="#00000000" ... />
顏色和不透明度 (alpha) 值以十六進(jìn)制表示法表示。任何一種顏色的值范圍都是 0 到 255(00 到 ff)。對于 alpha,00 表示完全透明,ff 表示完全不透明。表達(dá)式順序是“aabbggrr”,其中aa=alpha(00 到 ff);bb=blue(00 到 ff);gg=green(00 到 ff);rr=red(00 到 ff)。例如,如果您希望對某疊加層應(yīng)用不透明度為 50% 的藍(lán)色,則應(yīng)指定以下值:7fff0000

設(shè)置顏色的透明度可以通過Paint類的setAlpha方法來完成。因?yàn)樽鲰?xiàng)目中,很多時候不需要讓照片完全透明的,所以試驗(yàn)做了一個可以調(diào)節(jié)圖片透明度的程序。

例1
本例子通過一個滑桿(SeekBar)組件改變位圖中顏色的Alpha值(透明度)。顯示位圖的MyView類的代碼如下:

  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個參數(shù)表示原位圖的復(fù)制區(qū)域,在本例中表示復(fù)制整個原位圖。第3個參數(shù)表示繪制的目標(biāo)區(qū)域。
SeekBar組件的onProgressChanged時間方法的代碼如下:

public void onProgressChanged(SeekBar seekBar, int progress,
      boolean fromUser)
  {
    alpha = progress;
    setTitle("alpha:" + progress);
    myView.invalidate();
  }

運(yùn)行本例,將滑桿移動到靠左和靠右的位置,將會看到如下面兩個圖的效果:

2016428161625117.jpg (480×522)

2016428161650269.jpg (480×518)

例2
Alpha透明漸變動畫 。 

2016428161852611.gif (374×534)

<alpha>標(biāo)簽為alpha透明度節(jié)點(diǎn)
android:fromAlpha="1.0" 設(shè)置動畫起始透明度為1.0 表示完全不透明
android:toAlpha="0.0"設(shè)置動畫結(jié)束透明度為0.0 表示完全透明
也就是說alpha的取值范圍為0.0 - 1.0 之間

這個動畫布局設(shè)置動畫從完全不透明漸變到完全透明。

<?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 { 
  /**顯示動畫的ImageView**/
  ImageView mImageView = null; 

  /**透明動畫**/
  Animation mAnimation = null; 
  @Override
  public
void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.translate); 

  /**拿到ImageView對象**/
  mImageView = (ImageView)findViewById(R.id.imageView); 

  /**加載透明動畫**/
  mAnimation = AnimationUtils.loadAnimation(this, R.anim.alpha); 

  /**播放透明動畫**/
  mImageView.startAnimation(mAnimation); 
  } 
} 

相關(guān)文章

最新評論