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