如何在android应用程序的imageView中显示来自意图的图像?
当选择图像(例如bitmoji)时,我正在使用意图启动我的应用程序。我希望图像显示在图像视图中 这是my MainActivity.java中的相关代码:如何在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
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?