Как передать изображение одного вида деятельности на другой вид деятельности?

голоса
0

Я хочу передать изображение с камеры или галереи, чтобы показать еще один activity.In другой деятельности я просто typecasted вид изображения object.but я каждый раз не удалось. Sender активность здесь:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==50 && resultCode==RESULT_OK && data != null){
        Bitmap B=(Bitmap) data.getExtras().get(data);
    }
    else if(requestCode==40 && resultCode==RESULT_OK && data != null){
        Bitmap B=(Bitmap) data.getExtras().get(data);
    }
}
Задан 20/10/2018 в 05:24
источник пользователем
На других языках...                            


1 ответов

голоса
0

Носите растровое изображение намеренно может быть причиной сбоя приложения , если битовая карта является слишком большой, поэтому я предлагаю вам сохранить его в карту памяти , а затем передать свой локальный путь, например intent.For, есть Bitmap, вы сохранили ее в локальный путь /storage/emulated/0/Download/mybitmap.jpg, то вы положили этот путь в Intent как intent.putExtra("path","/storage/emulated/0/Download/mybitmap.jpg").в свою целевую активность получить путь по getIntent().getStringExtra("path").

Вы можете сохранить точечный рисунок с следующим способом:

public static void saveImage(Bitmap bm, String fileName,boolean needCompress) {  
        try {
            File myCaptureFile = new File(fileName);
            File parent = myCaptureFile.getParentFile();
            if (!parent.exists()) {
                parent.mkdirs();
            }
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));
            if(needCompress){
                bm.compress(Bitmap.CompressFormat.JPEG, 85, bos);  
            }else{
                bm.compress(Bitmap.CompressFormat.PNG, 100, bos);
            }
            bos.flush();  
            bos.close();  
        } catch (IOException e) {
            throw new RuntimeException("IOException occurred when saving image: " + fileName, e);
        }
    } 
Ответил 20/10/2018 в 10:50
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more