2011-01-14 68 views
3

我想知道如果我可以使圖像不透明的,如果設置在圖像視圖或設置爲相對佈局的背景。如何讓圖像在一定程度上不透明?

我怎樣才能讓不透明的使用圖像視圖或相對佈局的動態或是否有任何其他選項來設置圖像和不透明度設置動態圖像的圖像?

我也希望同樣的圖像在兩個方向上旋轉,也可以zoomin和縮小(ZoomOut)到anylevel。

在此先感謝

+0

單程意識到是做圖像預處理(使用Bitmap函數),然後dinamically(從代碼)將其設置爲相對佈局的背景或ImageView的src。但我想這不是你想要的。你想從控制本身做到這一點,但除了Style之外,我沒有看到任何屬性。 – Zelimir 2011-01-14 07:03:55

+0

@Zelimir - 你可以用你知道的例子來解釋嗎 – Nikki 2011-01-14 07:30:28

回答

6

下面的工作和測試代碼。

private void applyTransformToImageView(int code) 
{ 
    Bitmap bmpOriginal = BitmapFactory.decodeResource(this.getResources(), R.drawable.image2); 
    Bitmap bmResult = Bitmap.createBitmap(bmpOriginal.getWidth(), bmpOriginal.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas tempCanvas = new Canvas(bmResult); 

    switch (code) 
    { 
     case CHANGE_TRANSPARENCY: 
     { 
      Paint alphaPaint = new Paint(); 
      alphaPaint.setAlpha(128); 
      tempCanvas.drawBitmap(bmpOriginal, 0, 0, alphaPaint);    
     } 
     break; 

     case ROTATE: 
     { 
      tempCanvas.rotate(90, bmpOriginal.getWidth()/2, bmpOriginal.getHeight()/2); 
      tempCanvas.drawBitmap(bmpOriginal, 0, 0, null); 
     } 
     break; 

     case ZOOM_IN: 
     {    
      Rect zoomRegion = new Rect(); 
      zoomRegion.left = 0; 
      zoomRegion.top = 0; 
      zoomRegion.right = bmpOriginal.getWidth()/2; 
      zoomRegion.bottom = bmpOriginal.getHeight()/2; 

      Rect display = new Rect(); 
      display.left = 0; 
      display.top = 0; 
      display.right = bmpOriginal.getWidth(); 
      display.bottom = bmpOriginal.getHeight(); 

      tempCanvas.drawBitmap(bmpOriginal, zoomRegion, display, null); 
     } 
     break; 

     default: 
    } 

    mImageView.setImageBitmap(bmResult);    
} 
  • 套的α半透明 - 值128
  • 圍繞原始圖像中心
  • 旋轉90度
  • 放大到原始圖像的左上象限我