使用'setAlpha'不会更改按钮的透明度

时间:2010-11-27 09:34:22

标签: android android-layout

我正在开发一个简单的应用程序,因为有6个按钮。 当我点击其中一个按钮时,其他按钮必须是部分透明的。我尝试通过设置5个按钮的alpha来

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

应用程序的UI未按预期更改。我得到的只有3分是透明的。当点击那两个按钮时,它正在慢慢改变它的透明度

提前致谢

的问候, kariyachan

4 个答案:

答案 0 :(得分: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);  
}

这对我有用:)

答案 1 :(得分:0)

尝试以下方法:

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

答案 2 :(得分:0)

在android-sdk目录中找到按钮背景:android-sdk\platforms\android-10\data\res\drawable-mdpi\btn_default_normal.9.png

您可以修改它以使其半透明(请注意,这是9-patch,您不应该更改黑线的不透明度。)

在drawable目录中有了这个更改按钮后,您可以将其添加到您的代码中:

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

使其半透明和

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

将其改回来。

答案 3 :(得分:0)

对于仍在寻找解决方案的人:

API 16

开始,方法setBackgroundDrawable(Drawable d) 已弃用

假设您的按钮的ID为buttonId且您的drawable名为button_img, 通过在onCreate方法中使用以下内容来处理此问题:

((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.

        }
    });

经过测试并适合我!