2011-01-14 13 views
3

Ich würde gerne wissen, ob ich ein Bild undurchsichtig machen kann, wenn es in der Bildansicht oder als Hintergrund des relativen Layouts eingestellt ist.Wie kann ich ein Bild undurchsichtig machen?

Wie kann ich machen, ein Bild undurchsichtig mit Bildansicht oder relatives Layout für das Bild dynamisch einstellen oder Gibt es eine andere Option Bild und seine Opazität dynamisch einstellen?

Ich mag auch das gleiche Bild in beiden Richtungen drehen und kann auch Zoomin und ZoomOut anylevel.

Vielen Dank im Voraus

+0

Ein Weg, ich bin Beachten Sie, dass die Bildvorverarbeitung (mit Bitmap-Funktionen dafür) und dann dynamisch (vom Code) als Hintergrund für Relatives Layout oder src für ImageView durchgeführt wird. Aber ich denke, es ist nicht das, was du willst. Sie möchten das von der Steuerung selbst aus tun, aber ich sehe keine Eigenschaft außer vielleicht Style. – Zelimir

+0

@Zelimir - können Sie mit Beispiel erklären, dass Sie wissen – Nikki

+0

Ich habe meine Antwort hinzugefügt. Es beschreibt das Prinzip, so dass Sie es leicht an Ihre Bedürfnisse anpassen können. – Zelimir

Antwort

6

Arbeits-und getesteten Code unten.

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);    
} 
  • Sätze alpha zu semi-transparent - Wert 128
  • dreht sich um das Zentrum Originalbild für 90 Grad
  • Zoom in linken oberen Quadranten des ursprünglichen Bildes
+0

Sehr schön, vielen Dank für die gemeinsame Nutzung drehen! –

+0

Gern geschehen. – Zelimir

Verwandte Themen