Android ImageView 显示本地图片

布局文件

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"> <ImageView
android:id="@+id/img"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:background="#aa111222"
android:onClick="getPicture"
/>
</RelativeLayout>

主文件

 package com.example.administrator.getpicture;

 import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.ImageView; import java.io.InputStream; public class MainActivity extends Activity { private ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView)this.findViewById(R.id.img);
}
//图片点击事件
public void getPicture(View v)
{
Intent intent = new Intent(Intent.ACTION_PICK,null);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
//intent 待启动的Intent 100(requestCode)请求码,返回时用来区分是那次请求
startActivityForResult(intent ,100);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//返回成功,请求码(对应启动时的requestCode)
if(resultCode == RESULT_OK && requestCode==100)
{
//方式一(不建议使用)
//下面的一句代码,也可以把图片显示在ImageView中
//但图片过大的时候,将无法显示,所以
//img.setImageURI(data.getData()); //方式二
Uri uri = data.getData();
ContentResolver cr = this.getContentResolver();
try {
//根据Uri获取流文件
InputStream is = cr.openInputStream(uri);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize =3;
Bitmap bitmap = BitmapFactory.decodeStream(is,null,options);
img.setImageBitmap(bitmap);
}
catch(Exception e)
{
Log.i("lyf", e.toString());
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}

对了,别忘了加权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

希望可以帮到大家。

最新文章

  1. 如何设置&#39;REUSE_ALV_GRID_DISPLAY&#39;的单个单元格的颜色
  2. 2013区域赛长沙赛区现场赛 K - Pocket Cube
  3. AX dynamics 2012 ssrs 开发报错:Native compiler return value: ‘[BC30179]
  4. java操作AJAX
  5. slice、substring和substr
  6. 不同版本(2.3,2.4,2.5)的Servlet web.xml 头信息
  7. 如何在腾讯云快速构建一个Wordpress个人站点
  8. cURL实现get、post请求
  9. sql表中数据遍历
  10. todo项目总结
  11. 浪潮IOT知识点
  12. linux中测试py脚本使用debug模式
  13. date 工具类
  14. (F - 超级英雄Hero HYSBZ - 1191 )匈牙利算法
  15. go语言之进阶篇字符串操作常用函数介绍
  16. Android -- 在xml文件中定义drawable数组
  17. jQuery截取字符串、日期字符串转Date、获取html中的纯文本
  18. jsp 基本原理
  19. IP判断 (字符串处理)
  20. Hadoop环境搭载

热门文章

  1. 《Java中的不可变类》
  2. java堆、栈、堆栈的区别
  3. C++异常处理的问题
  4. VG.net矢量图和矢量动画开发平台拓扑图软件免费下载
  5. Opencv 2.4.10 +VS2010 项目配置记录
  6. MYSQL数据库操作语句
  7. Bubble Sort_树状数组
  8. Node.js高级编程读书笔记 - 4 构建Web应用程序
  9. web移动端input获得光标Fixed定位失效解决方案
  10. 防刷新jq左侧滚动条导航展示