我需要在一些USER ACTIOn之后更改当前活动的背景
跟随id我编写的代码
Drawable d = new BitmapDrawable(getResources(),readBitmap(Uri.fromFile(new File(getFilesDir(), imageName))));
this.findViewById(android.R.id.content).setBackground(d);
this.findViewById(android.R.id.content).refreshDrawableState();
public Bitmap readBitmap(Uri selectedImage) {
Bitmap bm = null;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1; // reduce quality
ParcelFileDescriptor pFileDescriptor = null;
try {
//fileDescriptor = this.getContentResolver().openAssetFileDescriptor(selectedImage, "r");
pFileDescriptor = this.getContentResolver().openFileDescriptor(selectedImage, "r");
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
bm = BitmapFactory.decodeFileDescriptor(pFileDescriptor.getFileDescriptor(), null, options);
pFileDescriptor.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return bm;
}
这是content.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_img_body"
tools:context=".MainActivity" >
此外,如果我删除XML中设置的背景,它工作得很好!! 我很困惑
MOdified XML(Working)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
任何人都可以建议。
谢谢是提前
答案 0 :(得分:1)
尝试this.findViewById(android.R.id.content).setBackgroundDrawable(d);
答案 1 :(得分:0)
首先为您的布局提供ID
第二个findviewbyid那个布局
第三个layout.setBackgroundResource(getResources()。getDrawable(R.drawable.ready));
问题解决!!!