在一些用户操作之后,我需要更改当前活动的背景
按照我写的代码
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 中设置的背景,它工作得很好!我很困惑
修改后的 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"
tools:context=".MainActivity" >
任何人都可以请建议。
谢谢是提前