需求:设置背景的布局文件 关键代码
<LinearLayout
android:id="@+id/bg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/yu"
android:orientation="vertical">
MainActivity首页布局文件获取
private LinearLayout bg;
private Bitmap bitmap=null;
bg=findViewById(R.id.bg);
//设置背景
if (intent.getStringExtra("img_uri")!=null){
String img_path = intent.getStringExtra("img_uri");
Uri uri = Uri.parse( img_path );
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
// 设置背景
bg.setBackground(drawable);
} catch (IOException e) {
e.printStackTrace();
}
从图库选择图片(关键性代码) PhotoUtils文件代码
/**
* 读取uri所在的图片
*
* @param uri 图片对应的Uri
* @param mContext 上下文对象
* @return 获取图像的Bitmap
*/
public static Bitmap getBitmapFromUri(Uri uri, Context mContext) {
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(mContext.getContentResolver(), uri);
return bitmap;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
BgImageActivity代码调用图库
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
// 表示 调用照相机拍照
case PICK:
if (resultCode == RESULT_OK) {
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap) bundle.get("data");
imgString = bitmapToBase64(bitmap);
// uploadImg();
}
break;
// 选择图片库的图片
case IMAGE_RESULT_CODE:
if (resultCode == RESULT_OK) {
img_uri = data.getData();
Bitmap bitmap2 = PhotoUtils.getBitmapFromUri(img_uri, this);
bitmap=bitmap2;//吐过选择的图片大于200kb会报错
bgimage7.setImageBitmap(bitmap2);//显示图片
}
break;
}
}
BgImageActivity背景按钮 点击事件 传递信息到首页
case R.id.bgimage7:
intent=new Intent(BgImage.this,MainActivity.class);
if (bitmap!=null){
//intent.putExtra("bgimageBitmap",bitmap);
intent.putExtra("img_uri",img_uri.toString());
intent.putExtra("bgimage","");
// System.out.println(bitmap);
startActivityForResult(intent,1003);
}else {
intent.putExtra("bgimage",R.drawable.bgimage7+"");
startActivityForResult(intent,1002);
}
break;