¿Cómo puedo configurar el valor alfa de una vista completa en el nivel 7 de api (Android 2.1)

Tengo una opinión arbitraria que quiero desvanecerse en la parte superior de otra vista. En api nivel 11 veo que hay un setAlpha, pero estoy atascado apoyando api nivel 7. No he corrido a través de una manera sencilla de hacer esto. ¿Cómo puedo configurar el alpha para toda la vista sin jugar con cada componente individual?

3 Solutions collect form web for “¿Cómo puedo configurar el valor alfa de una vista completa en el nivel 7 de api (Android 2.1)”

Debería ser capaz de lograr un efecto razonable usando una AlphaAnimation en el API nivel 7.

View v = findViewById(R.id.view2); AlphaAnimation aa = new AlphaAnimation(0f,1f); aa.setDuration(5000); v.startAnimation(aa); 

El uso de AlphaAnimation sería una excelente solución para la mayoría de las transiciones, y sin duda habría funcionado para mí si no podía encontrar una manera de hacer exactamente lo que estaba tratando de hacer, lo que implica el desvanecimiento entre dos puntos de vista de una manera graduada basada en la inclinación Ángulo del dispositivo. Afortunadamente tengo! Aquí está la estrategia que tomé: envolví la vista en una subclase personalizada de FrameLayout, e implementé onDraw. Allí, capturé la vista secundaria como un mapa de bits, y luego volví a dibujar el mapa de bits con el alfa previsto. Aquí hay un código. Voy a editar cuando me limpian, esto es sólo una prueba de concepto, pero funciona como un encanto:

 public class AlphaView extends FrameLayout { private int alpha = 255; public AlphaView(Context context) { super(context); setWillNotDraw(false); } public AlphaView(Context context, AttributeSet attrs) { super(context, attrs); setWillNotDraw(false); } public AlphaView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setWillNotDraw(false); } public void setCustomAlpha(int alpha) { if (this.alpha != alpha) { this.alpha = alpha; invalidate(); } } public int getCustomAlpha() { return alpha; } @Override protected void onDraw(Canvas canvas) { for(int index = 0; index < getChildCount(); index++ ) { View child = getChildAt(index); child.setVisibility(View.INVISIBLE); child.setDrawingCacheEnabled(true); Bitmap bitmap = child.getDrawingCache(true); bitmap = Bitmap.createBitmap(bitmap); child.setDrawingCacheEnabled(false); Paint paint = new Paint(); paint.setAlpha(alpha); canvas.drawBitmap(bitmap, 0, 0, paint); } } } 

Dependerá del tipo de vista.

Para un TextView, en xml podría tener estos atributos:

 android:background="#00000000" android:textColor="#77FFFFFF" 

Los dos primeros números son los valores alfa de 00 a FF (en hexadecimal). El fondo sería totalmente transparente, mientras que el texto sería blanco y parcialmente transparente. No he probado esto, pero debería funcionar.

Si usted tiene un fondo que es una imagen, entonces la cosa más fácil de hacer sería pre-crear su png dibujable con transparencia.

  • ¿Cómo mostrar la actividad traslúcida?
  • Actividad translúcida llenando toda la pantalla
  • El tema translúcido no funciona cuando se programa mediante programación en Android 2.3.3 o 4.2
  • Cajón de navegación por debajo de la barra de acción transparente
  • Android-transparent RelativeLayout
  • Android: Transparencia PNG fallando con BitmapFactory.decodeStream (...) y carpeta de activos
  • Superposición transparente GLSurfaceview en la vista existente en android?
  • Cómo hacer que el botón transparente en mi aplicación sea visible
  • Android AlertDialog con fondo transparente
  • Cambiar la opacidad del color int en java / android
  • DrawBitmap al lienzo con un mapa de bits transparente, reemplace los píxeles originales
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.