一个新手问题。
我正在尝试更改alpha value
内bitmap item
的{{1}}。
我的layer-list
如下:
drawable xml
我的<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/img_btn" android:gravity="center"/>
</item>
<item>
<bitmap android:src="@drawable/image_frame" android:gravity="center"/>
</item>
</layer-list>
如下:
MainActivity
第一次调用public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MainApp.show(this);
addListeners();
changeAlpha(128);
}
private void changeAlpha(int opc){
ImageView img = (ImageView) findViewById(R.id.img_A);
LayerDrawable layer = (LayerDrawable) img.getDrawable();
BitmapDrawable bg = (BitmapDrawable) layer.getDrawable(0);
bg.setAlpha(opc);
}
private void addListeners() {
ImageView img = (ImageView) findViewById(R.id.img_A);
View.OnClickListener imageAClickListener = new View.OnClickListener() {
public void onClick(View view) {
changeAlpha(255);
}
};
img.setOnClickListener(imageAClickListener);
}
public void onBackPressed() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(Definitions.CONFIRM_EXIT)
.setCancelable(false)
.setPositiveButton(Definitions.YES, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MainActivity.this.finish();
}
})
.setNegativeButton(Definitions.NO, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
(来自changeAlpha
)工作得很好,但是当我从onCreate
事件中调用该方法时,它什么也没做(没有失败)
我错过了什么?
答案 0 :(得分:2)
尝试添加
img.invalidate();
到changeAlpha()方法的最后一行。
答案 1 :(得分:1)
在某些情况下,您应该致电img.setImageDrawable(layer)
,这将导致重新投放。