如何在Android中将不透明度更改为布局?

时间:2014-09-13 06:33:57

标签: android android-linearlayout opacity

现在我继续我的屏幕背景颜色变化,同时在(x,y)坐标中拖动我的图像,布局也应根据它改变屏幕的不透明度。

我接受了以下教程:

http://android-er.blogspot.in/2009/08/change-background-color-by-seekbar.html

http://android-er.blogspot.in/2012/02/animate-fade-infade-out-by-changing.html

然后通过progrmatically设置尝试如下:

layout.getBackground().setAlpha(30);

以下是代码:

public class MyActivity extends Activity {
public boolean status = false;
Button first,second;
LinearLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
layout = (LinearLayout) findViewById(R.id.trans);
first = (Button) findViewById(R.id.first_theme);
second = (Button) findViewById(R.id.second_theme);
// if(status==true)
// {setTheme( android.R.style.ThemeFirst );
// }
// else
{
//            setTheme( android.R.style.ThemeSecond );
//        }
        first.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
               status = true;
                layout.getBackground().setAlpha(30);
            }
        });

        second.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                second.getBackground().setAlpha(00);
            }
        });
    }
}

但是没有它导致我NullPointerException错误怎么能解决这个问题,如果有人有这个想法,请帮助我的朋友。

1 个答案:

答案 0 :(得分:0)

setAlpha工作,api +11你可以为每个版本使用这样的东西:

 first.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
           status = true;
            AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f,0.3f);
            alphaAnimation.setFillAfter(true);
            alphaAnimation.setDuration(10);//duration in millisecond
            layout.startAnimation(alphaAnimation);
        }
 });  

更新:
  为了恢复原始的不透明度,你可以这样做:

AlphaAnimation alphaAnimation = new AlphaAnimation(0.3f,1.0f);
alphaAnimation.setFillAfter(true);
alphaAnimation.setDuration(10);
layout.startAnimation(alphaAnimation);