当用户点击按钮时,我需要能够从图库中获取图像。
由于有很多答案,我的问题是如何做到这一点,将所选图像设置为 RelativeLayout ,此RelativeLayout位于另一个类中。
我的项目是这样的:我的SettingsActivity是按钮的位置,而我的MainActivity是壁纸所在的位置。当用户导航回MainActivity时,我需要将图像设置为RelativeLayout。
我尝试过的代码:
SettingsActivity:
changeWallpaper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view1)
{
Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, RESULT_LOAD_IMAGE);
}
});
....
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
editor.putBoolean(SETWALLPAPER, wallpaperSelection);
editor.commit();
}
}
MainActivity:
isWallpaper = prefs.getBoolean(SETWALLPAPER, false);
...
if(isWallpaper == true)
{
Toast.makeText(MainActivity.this, "Setting BG", Toast.LENGTH_LONG).show();
wallpaperView.setBackgroundDrawable(new BitmapDrawable(bitmap));
}
由于
答案 0 :(得分:1)
您似乎没有在选择图片但在onCreate()内部设置图片
将您的if(..){}
放入 onActivityResult()方法中,然后查看。
让我知道它是否有效。
使用else
并尝试查看结果。查看 if 代码是否运行?
答案 1 :(得分:0)
MainActivity不做任何事是因为活动不知道用户选择了什么
在SettingActivity onActivityResult
上,您可以将picturePath
存储在SharedPreferences
在MainActivity onResume
上,尝试获取图片的路径并将其转换为位图并将其设置为背景可绘制