2012-03-13 16 views
9

¿Puedo establecer programáticamente el alfa de un ImageView sin la necesidad de depender del nivel API 11 donde se introdujo setAlpha?Establecer alfa en ImageView sin setAlpha

+1

Ohh .. hay un setAlpha (int alfa), así como en eso ImageView de trabajo desde el nivel del API 1 :) – joynes

Respuesta

2

Creo (pero no estoy seguro) que pueda aplicar una animación alfa a su ImageView, y siempre que fillAfter() se establezca en verdadero en la animación, la imagen debe permanecer en cualquier nivel alfa termina en.

+0

solo he encontrado la respuesta más simple :) .. . véase más arriba. – joynes

+0

ese es definitivamente el camino a seguir, entonces – FoamyGuy

40

ImageView tiene un método setAlpha(int) desde API nivel 1. Así que puede usarlo en cualquier nivel de API.
Es el método de ViewsetAlpha(float) que se introduce en el nivel de la API 11.

+3

@joynes Se debe aceptar la respuesta – ruX

+1

Use 'setImageAlpha (X)' para la versión del SDK> = 16! – tipycalFlow

+0

Creo que el último comentario es mucho más útil. – Vyacheslav

2

se puede hacer una nueva disposición con sólo ur imagen, establecer el alfa que necesita para el diseño, configurarlo como una superposición e inflar cuando querer.

LayoutInflater inflater = LayoutInflater.from(this); 
     View overView = inflater.inflate(R.layout.myAlpahImageLayout, null); 
     this.addContentView(overView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:alpha="0.5" 
    tools:context=".MainActivity" > 

    <ImageView 
     android:id="@+id/myImage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/myImage1" /> 

</RelativeLayout> 
4

He usado el código para establecer Alfa de la imagen en sí, no la vista. Este servicio está disponible desde el nivel del API 1 ..

public void toggleButton(int i) { 
    if (indImageBtnEnabled[i]) { 

     int di = getDrawableId(findViewById(myImagebtns[i])); 
     Drawable d = this.getResources().getDrawable(di); 
     d.setAlpha(25); 

     ((ImageView) findViewById(myImagebtns[i])).setImageDrawable(d); 

     indImageBtnEnabled[i] = false; 
    } else { 
     // findViewById(myImagebtns[i]).setAlpha(1f) << NEEDS API11; 
     int di = getDrawableId(findViewById(myImagebtns[i])); 
     Drawable d = this.getResources().getDrawable(di); 
     d.setAlpha(255); 

     ((ImageView) findViewById(myImagebtns[i])).setImageDrawable(d); 

     indImageBtnEnabled[i] = true; 
    } 
} 
Cuestiones relacionadas