这是Intent的一个用法。

在ActivityAction里面有一个“ACTION_GET_CONTENT”字符串常量,该常量让用户选择特定类型的数据。

intent.setType("image/*");  选择本地所有的图片。

返回该数据的URI.我们利用该常量生成该图片的位图Bitmap,然后为添加到图片控件(ImageView)上就行了。

选择你想要的图片:

main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <Button
  8. android:id="@+id/button"
  9. android:layout_width="fill_parent"
  10. android:layout_height="wrap_content"
  11. />
  12. <ImageView
  13. android:id="@+id/image"
  14. android:layout_width="fill_parent"
  15. android:scaleType="fitXY"
  16. android:layout_height="wrap_content"
  17. />
  18. </LinearLayout>
  1. package xiaosi.image;
  2. import java.io.FileNotFoundException;
  3. import android.app.Activity;
  4. import android.content.ContentResolver;
  5. import android.content.Intent;
  6. import android.graphics.Bitmap;
  7. import android.graphics.BitmapFactory;
  8. import android.net.Uri;
  9. import android.os.Bundle;
  10. import android.util.Log;
  11. import android.view.View;
  12. import android.view.View.OnClickListener;
  13. import android.widget.Button;
  14. import android.widget.ImageView;
  15. public class ImageActivity extends Activity {
  16. /** Called when the activity is first created. */
  17. private Button button = null;
  18. private ImageView imageView = null;
  19. @Override
  20. public void onCreate(Bundle savedInstanceState) {
  21. super.onCreate(savedInstanceState);
  22. setContentView(R.layout.main);
  23. button = (Button)findViewById(R.id.button);
  24. button.setText("选择图片");
  25. button.setOnClickListener(new ButtonListener());
  26. }
  27. private class ButtonListener implements OnClickListener{
  28. public void onClick(View v)
  29. {
  30. Intent intent = new Intent();
  31. /* 开启Pictures画面Type设定为image */
  32. intent.setType("image/*");
  33. /* 使用Intent.ACTION_GET_CONTENT这个Action */
  34. intent.setAction(Intent.ACTION_GET_CONTENT);
  35. /* 取得相片后返回本画面 */
  36. startActivityForResult(intent, 1);
  37. }
  38. }
  39. @Override
  40. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  41. if (resultCode == RESULT_OK) {
  42. Uri uri = data.getData();
  43. Log.e("uri", uri.toString());
  44. ContentResolver contentResolver = this.getContentResolver();
  45. try {
  46. Bitmap bitmap = BitmapFactory.decodeStream(contentResolver.openInputStream(uri));
  47. imageView = (ImageView) findViewById(R.id.image);
  48. /* 将Bitmap设定到ImageView */
  49. imageView.setImageBitmap(bitmap);
  50. }
  51. catch (FileNotFoundException e){
  52. Log.e("Exception", e.getMessage(),e);
  53. }
  54. }
  55. super.onActivityResult(requestCode, resultCode, data);
  56. }
  57. }

源代码:点击打开链接

最新文章

  1. T-SQL 基本语法
  2. javascript基础知识-类和模块
  3. 位与(&amp;)常用编程技巧
  4. 【boost】使用lambda表达式和generate_n生成顺序序列
  5. jquery表格伸展
  6. 【ruby on rail 项目之 VPS下载机】
  7. 从不同层面看cocos2d-x
  8. hdu 5424 Rikka with Graph II(dfs+哈密顿路径)
  9. C# ASP.net 入门之简单通讯录
  10. MyISAM和InnoDB的索引实现
  11. Centos下替换yum源为阿里云源
  12. window、Linux 文本文件转换
  13. (4.4)mysql备份还原——备份存储容灾基础知识
  14. codes often WA
  15. 使用 urllib 处理 Cookies 信息
  16. JVM 系列(一)类加载
  17. 初识Java ThreadLocal
  18. POJ3347 Kadj Squares
  19. PHP与数据库
  20. Django学习笔记第九篇--实战练习五--关于数据的改、删操作、数据库字段属性的设置和类视图

热门文章

  1. Java基础学习总结(22)——异常处理
  2. VGA接口时序约束
  3. 融云消息接口apicloud
  4. docker 笔记1
  5. Sub Thread to update main Thread (UI)
  6. BZOJ3645: Maze(FFT多项式快速幂)
  7. CentOS yum安装mcrypt详细图解教程
  8. Spring Cloud学习笔记【一】Eureka服务注册与发现
  9. 使用Spring Mvc 转发 带着模板 父页面 之解决方法 decorators.xml
  10. 手动脱FSG壳实战