我想在我的应用中使用一种功能,用户可以从手机的内存中选择背景(.png/.jpg
文件)。我想使用此链接http://www.dreamincode.net/forums/topic/190013-creating-simple-file-chooser/
上面链接的代码只显示SD卡的视图,现在我想将那里的任何图像文件设置为我的应用程序背景。我怎样才能做到这一点?
答案 0 :(得分:1)
如果您只想选择图像并设置背景,我认为最简单的方法是这样的:
.....
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, SELECT_PICTURE_ACTIVITY_REQUEST_CODE);
....
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch (requestCode) {
case SELECT_PICTURE_ACTIVITY_REQUEST_CODE:
if (resultCode == RESULT_OK) {
Uri selectedImage = imageReturnedIntent.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
if (cursor.moveToFirst()) {
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
setBackgroundDrawable(new BitmapDrawable(bitmap));
}
cursor.close();
}
break;
}
}
答案 1 :(得分:0)
根据您的应用,在每个现有布局周围FrameLayout,以您正确设置的ImageView开头。
答案 2 :(得分:0)
如果你想动态使用
setBackgroundColor(int color)
或
setBackgroundResource(int resourceID)
在您的活动的父视图上。
答案 3 :(得分:0)
你可以试试这个:
Bitmap srcBitmap = BitmapFactory.decodeStream(new FileInputStream(new File("path/to/file.jpg")));
BitmapDrawable bmpDrawable = new BitmapDrawable(srcBitmap);
YourView.setBackgroundDrawable(bmpDrawable);
答案 4 :(得分:0)
我认为您的问题是您不知道如何加载从图库中挑选的图像。 @ appserv的答案解决了您的问题,但如果您需要从任何来源(包括您的应用资源)加载图片,请查看它是如何implemented in ImageView