0
点赞
收藏
分享

微信扫一扫

android学习之选择媒体库中的图片


从媒体库中选择图片

主要是启动系统相关Activity

Intent i = new Intent( Intent.ACTION_PICK,

android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

startActivityForResult(i, RESULT_LOAD_IMAGE);

注意:这里要传一个整形的常量RESULT_LOAD_IMAGEstartActivityForResult()方法。

一旦用户选择了一张图片,onActivityResult()方法将会被调用。我们需要处理这个方法得到的数据。onActivityResult()方法只有当图片被选中后才会调用。在这个方法中,我们需要检查requestCode是否是我们之前传给startActivityForResult()方法的RESULT_LOAD_IMAGE。

Java代码:

[java]  
   view plain 
   copy 
   
 
   
 
 
1. package com.example.com.njupt.zhb.selectimages;  
2. import android.app.Activity;  
3. import android.content.Intent;  
4. import android.database.Cursor;  
5. import android.graphics.BitmapFactory;  
6. import android.net.Uri;  
7. import android.os.Bundle;  
8. import android.provider.MediaStore;  
9. import android.view.Menu;  
10. import android.view.View;  
11. import android.widget.Button;  
12. import android.widget.ImageView;  
13. public class MainActivity extends Activity {  
14.    
15. private static int RESULT_LOAD_IMAGE = 123;  
16. private ImageView imageView;  
17. private String picturePath=null;  
18. @Override  
19. public void onCreate(Bundle savedInstanceState) {  
20. super.onCreate(savedInstanceState);  
21.         setContentView(R.layout.activity_main);  
22.         imageView = (ImageView) findViewById(R.id.imgView);  
23.         Button buttonLoadImage = (Button) findViewById(R.id.buttonLoadPicture);  
24. new View.OnClickListener() {  
25. @Override  
26. public void onClick(View arg0) {  
27.    
28. new Intent(  
29.                         Intent.ACTION_PICK,  
30.                         android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);  
31.    
32.                 startActivityForResult(i, RESULT_LOAD_IMAGE);  
33.             }  
34.         });  
35.     }  
36.    
37. @Override  
38. protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
39. super.onActivityResult(requestCode, resultCode, data);  
40.    
41. if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {  
42.             Uri selectedImage = data.getData();  
43.             String[] filePathColumn = { MediaStore.Images.Media.DATA };  
44.    
45.             Cursor cursor = getContentResolver().query(selectedImage,  
46. null, null, null);  
47.             cursor.moveToFirst();  
48. int columnIndex = cursor.getColumnIndex(filePathColumn[0]);  
49.             picturePath = cursor.getString(columnIndex);  
50.             cursor.close();  
51.             imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));  
52.         }  
53.     }  
54. @Override  
55. public boolean onCreateOptionsMenu(Menu menu) {  
56.         getMenuInflater().inflate(R.menu.activity_main, menu);  
57. return true;  
58.     }  
59. }



XML布局文件


[html]  
   view plain 
   copy 
   
 
   
 
 
1. <?xml version="1.0" encoding="utf-8"?>  
2. <AbsoluteLayout  
3. android:id="@+id/widget0"  
4. android:layout_width="fill_parent"  
5. android:layout_height="fill_parent"  
6. xmlns:android="http://schemas.android.com/apk/res/android">  
7. <ImageView  
8. android:id="@+id/imgView"  
9. android:layout_width="315dp"  
10. android:layout_height="384dp"  
11. android:layout_x="2dp"  
12. android:layout_y="4dp" />  
13. <Button  
14. android:id="@+id/buttonLoadPicture"  
15. android:layout_width="317dp"  
16. android:layout_height="wrap_content"  
17. android:text="SelectImage"  
18. android:layout_x="2dp"  
19. android:layout_y="391dp" />  
20. </AbsoluteLayout>

举报

相关推荐

0 条评论