如何在android应用程序的imageView中显示来自意图的图像?

如何在android应用程序的imageView中显示来自意图的图像?,android,android-intent,android-imageview,android-image,Android,Android Intent,Android Imageview,Android Image,当选择图像(例如bitmoji)时,我正在使用意图启动我的应用程序。我希望图像显示在图像视图中 这是my MainActivity.java中的相关代码: public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { private Bitmap bitmap; private ImageView image

当选择图像(例如bitmoji)时,我正在使用意图启动我的应用程序。我希望图像显示在图像视图中

这是my MainActivity.java中的相关代码:

public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

    private Bitmap bitmap;
    private ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        imageView = (ImageView) findViewById(R.id.imageView);

        if (Intent.ACTION_SEND.equals(action) && type != null) {
             if ("text/plain".equals(type)) {
                 handleSendText(intent); // Handle text being sent
             } else if (type.startsWith("image/")) {
                handleSendImage(intent); // Handle single image being sent
             }
        }
    void handleSendImage(Intent intent) {
    Uri imageUri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
    Context context = getApplicationContext();
    //
    try
    {
        //bitmap = MediaStore.Images.Media.getBitmap(getContentResolver() ,  imageUri);
        if (imageUri != null) {

            // Update UI to reflect image being shared

            InputStream is = getContentResolver().openInputStream(imageUri);
            bitmap = BitmapFactory.decodeStream(is);
            is.close();
            //bitmap = MediaStore.Images.Media.getBitmap(getContentResolver() , imageUri);

            imageView.setImageBitmap(bitmap);

        }
    }
    catch (Exception e)
    {
        //handle exception
    }


}

我已经做了一些调试,所以我知道Uri有一个字符串指向一个文件,它只是不更新imageView。通过阅读,我想我可能需要先放大视图?我对此不清楚。我对Android非常陌生,如果您能帮我一点忙,我将不胜感激。

您是否已将handleSendImage()方法放在onCreate()中?是的。该函数是从onCreate()调用的。图像有一个Uri,所以它在内存中,我只是没有尽可能地将它正确地插入imageView。或者,也许我需要使用AsyncTask作为后台线程运行位图解码?是的,请尝试一下好的,我现在正在做所有这些-使用异步任务以及解码位图,但是现在我得到了以下错误:E/BitmapFactory:无法解码流:java.io.FileNotFoundException:/storage/simulated/0/Android/data/com.bitstrips.imoji/cache/bitmoji-1441479250.png:打开失败:EACCES(权限被拒绝)@Nisarg,知道这个错误是什么吗?你的targetSdk是23?