2010-11-27 5 views
3

Ich entwickle eine einfache Anwendung, in der es gibt 6 Tasten. Wenn ich auf einen dieser Buttons geklickt habe, müssen die anderen Buttons teilweise transparent sein. Ich habe versucht, getan, dass Alpha von 5 TastenTransparenz der Schaltfläche wird nicht mit 'setAlpha' geändert

acre_button.getBackground().mutate().setAlpha(155);

Ui der Anwendung nicht geändert, wie ich erwartete Durch die Einstellung. Ich habe nur 3 von 5 transparent.when wird erhalten Sie auf, dass zwei Taste, um es langsam ändert es ist Transparenz

Vielen Dank im Voraus

Grüßen, kariyachan

+0

Also, was ist die Frage? –

+0

ich Alpha 155 für Schaltflächen festlegen. Einige Schaltflächen Hintergrundbild Transparenz ändert sich nicht (UI ändert sich nicht entsprechend) – DroidBot

Antwort

0

Versuchen Sie Folgendes:

button.setBackgroundColor(android.R.color.transparent); 
+0

hi. Danke für Ihre Antwort. Aber es macht den ganzen Knopf komplett transparent. Was ich suche ist etwas Opazität (vielleicht über Alpha-Wert) auf die Schaltfläche. – DroidBot

0

Finden Sie eine Schaltfläche Hintergrund in Ihrem android-sdk-Verzeichnis hier: android-sdk\platforms\android-10\data\res\drawable-mdpi\btn_default_normal.9.png

können Sie modifiziere es, um es halbtransparent zu machen (Bitte beachte, dass dies eine 9-patch ist und du solltest die Deckkraft der schwarzen Linien nicht ändern).

Sobald Sie diese geänderte Schaltfläche in Ihrem ziehbar Verzeichnis haben, können Sie diese zu Ihrem Code hinzu:

button.setBackgroundDrawable(getResources().getDrawable(R.drawable.transparentImage)); 

, um es halbtransparent und

button.setBackgroundDrawable(getResources().getDrawable(Android.R.drawable.btn_default_normal)); 

es ändern zurück.

1
Button btn; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    btn = (Button) findViewById(R.id.main_btn); 
    Drawable d = getResources().getDrawable(R.drawable.imagen); 
    d.setAlpha(60); 
    btn.setBackgroundDrawable(d); 
} 

Dies funktioniert für mich :)

0

Für alle, die eine Lösung für diese Jagd noch:

Verfahren setBackgroundDrawable(Drawable d) ab API ist veraltet 16

Ihre Unter der Annahme, Die ID der Schaltfläche lautet buttonId und Ihr Zeichensatz heißt button_img, Verwenden Sie Folgendes in der OnCreate-Methode:

((Button)(findViewById(R.id.buttonId))).setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Drawable d = v.getResources().getDrawable(R.drawable.button_img); 
      d.setAlpha(40); 
      if (Build.VERSION.SDK_INT >= 16) 
       v.setBackground(d); 
      else 
       v.setBackgroundDrawable(d); 
      //Then call your next Intent or desired action. 

     } 
    }); 

Getestet und funktioniert für mich!

Verwandte Themen