2

我正在开发一个 android 应用程序,这是我面临的一个问题:

我的主菜单会将图像 uri 的意图传递给另一个活动,它将在第二个活动上显示图像。

我处理获取 uri 的意图并将其转换为 onStart() 方法中的位图(我自己编写代码以覆盖超类方法)。 (这样做是否正确?)

我应该在哪里将图像设置到活动的图像视图上?

我的问题是处理图像后,我的应用程序将强制关闭。但是如果我删除 onStart() 方法,第二个活动将不会出现错误,但不会显示图像(因为我处理显示图像)。

当我使用 Log.d() 方法来显示我的程序停止的位置时,它确实显示程序运行直到我处理意图并获取位图(我的程序此时结束的位置)。

这是我的 onStrat() 方法的代码:

    protected void onStart()
    {

        Bitmap newBitmap = null;

        Intent imageURI = getIntent();
        Log.d("HERE", "intent received");

        String imageLoc = imageURI.getExtras().getString("IMAGE_URI");
        Log.d("HERE", imageLoc);

        Uri imageLocation = Uri.parse(imageLoc);
        Log.d("HERE", "Uri reated");

        try 
        {
        newBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageLocation);
    } 
        catch (FileNotFoundException e) 
        {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 

        catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

        Log.d("HERE", "bitmap created");


}

我搞砸了一些事情,终于找到了解决方案。感谢异步任务信息,它确实加快了我的进程。

谢谢你。

4

2 回答 2

0

处理意图并获取 uri 并在 onResume() 中显示图像,它将为您工作。

于 2012-11-27T08:24:29.553 回答
0

我处理获取 uri 的意图并将其转换为 onStart() 方法中的位图(我自己编写代码以覆盖超类方法)。(这样做是否正确?)

创建Activity. 最常见的方式是AsyncTask用于处理位图。您应该在onCreate()Intent.

我应该在哪里将图像设置到活动的图像视图上?

IMO,做到这一点的最佳场所 - 是onPostExecute()方法AsyncTask

于 2012-11-27T08:41:50.683 回答