如何在图像视图中存储图像,就像在联系人管理器中一样?

时间:2012-05-30 13:57:45

标签: android image gallery contacts

每个人都知道联系人经理的样子。在上角,您可以在此图像视图中单击。这使您可以从图库中选择图像。

我正在寻找的是如何在我的应用中实现此功能。我已经设置了一个图像按钮,您可以单击该按钮。这将带您进入画廊。

接下来要设置onActivityResult方法,可能是存储图像的数据库以及检索图像的方法,以便可以在图像按钮中显示。

拜托,我真的想知道如何构建这个,但不知道如何开始。有人可以发布上述步骤的一些示例代码吗?你会成为我的英雄!

1 个答案:

答案 0 :(得分:2)

从您的问题来看,您似乎在与onActivityResult部分争吵最多。

它应该是这样的:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
   if(requestCode == 0 && data != null && data.getData() != null) {
       Uri uri = data.getData();
       if(uri != null) {
          Cursor cursor = getContentResolver().query(uri, new String[] {   
                                   android.provider.MediaStore.Images.ImageColumns.DATA}, 
                                   null, null, null);
                cursor.moveToFirst();
                String imageFilePath = cursor.getString(0);             
                cursor.close();

                if(imageFilePath != null) {
                        // Do whatever you want like decode it into a Bitmap
                        Bitmap bitmap = BitmapFactory.decodeFile(imageFilePath);
                        // Or.. store it somewhere in your local db  
                    }
       }
   }
}

检索完图像的文件路径后,您可以随心所欲地执行任何操作。正如您所说,您显然可以将其存储在用户表的本地数据库中。