恢复用户图像后,如何将其保存在可绘制对象中



恢复用户的图像后,如何将其保存在应用程序中的可绘制对象中?用于其他活动。

从用户的库中检索图像并将其放入图像视图:

public class Profil extends AppCompatActivity {
private Button btnImport;
public ImageView selectedImg;
static final int RESULT_LOAD_IMG = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.profil);
    ImageView btn_supervisor = findViewById(R.id.btn_supervisor);
    ImageView btn_add = findViewById(R.id.btn_add);
    ImageView btn_profile = findViewById(R.id.btn_profile);
    btnImport = findViewById(R.id.modifie_button);
    selectedImg = findViewById(R.id.modifie_image);

    btnImport.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
            photoPickerIntent.setType("image/*");
            startActivityForResult(photoPickerIntent, RESULT_LOAD_IMG);
        }
    });
}
@Override
protected void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);

    if (resultCode == RESULT_OK) {
        try {
            final Uri imageUri = data.getData();
            final InputStream imageStream = getContentResolver().openInputStream(imageUri);
            final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
            selectedImg.setImageBitmap(selectedImage);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            Toast.makeText(getApplicationContext(), "Une erreur s'est produite",Toast.LENGTH_LONG).show();
        }
    }else {
        Toast.makeText(getApplicationContext(),"Vous n'avez pas choisi d'image", Toast.LENGTH_LONG).show();
    }
}

}

提前谢谢你。

切勿保存图像可绘制对象/位图以在其他活动中使用。相反,您可以将图像文件的 Uri 保存在应用程序类中的某个变量或某些静态属性持有者中,然后可以在所有活动中从该 Uri 获取位图。

你可以

使用BitmapDrawable来实现这一点

将位图转换为可绘制对象。

Drawable

drawable = new BitmapDrawable(context.getResources(), bitmap);

最新更新