android从相册中获取图片并将其显示在当前界面
来源:互联网 发布:office mac破解版下载 编辑:程序博客网 时间:2024/05/16 05:22
先初始化;
注意自定义 的
private final String IMAGE_TYPE = "image/*";private final int IMAGE_CODE = 0;
private void setImage() { Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT); getAlbum.setType(IMAGE_TYPE); startActivityForResult(getAlbum, IMAGE_CODE);}这里使用Intent获得相册图片数据,并返回原来界面;
这里说明一下
startActivityForResult(getAlbum, IMAGE_CODE);
补充{
startActivityForResult与startActivity的不同之处在于:
1、startActivity( )
仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。
2、startActivityForResult( )
可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。
}
startActivityForResult(getAlbum, IMAGE_CODE);
这里采用startActivityForResult来做跳转,此处的IMAGE_CODE实质是0为一个依据,可以写其他的值,但一定要>=0
然后重写onActivityResult用于接收刚刚得到的数据
protected void onActivityResult(int requestCode, int resultCode, Intent data) { Bitmap bm = null; ContentResolver resolver = getContentResolver(); if (requestCode == IMAGE_CODE) { try { Uri originalUri = data.getData(); bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); imgShow.setImageBitmap(bm); } catch (IOException e) { e.printStackTrace(); } }
补充{
ContentProvider-----数据提供给第三方应用程序使用时使用
因为在Android系统里面,数据库是私有的。一般情况下外部应用程序是没有权限读取其他应用程序的数据。如果你想公开你自己的数据,你有两个选择:你可以创建你自己的内容提供器(一个ContentProvider子类)或者你可以给已有的提供器添加数据-如果存在一个控制同样类型数据的内容提供器且你拥有写的权限
}
这里是创建一个新的内容提供器,然后在Activity当中通过getContentResolver()可以得到当前应用的 ContentResolver实例
if (requestCode == IMAGE_CODE) {resultCode为回传的标记
这句话是在确认是否回传的是你所需要的;如果是就执行try;不然就执行
catch (IOException e) { e.printStackTrace();}先说这里当try语句中出现异常是时,会执行catch中的语句,IOException e也就是实例化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。try { Uri originalUri = data.getData(); bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); imgShow.setImageBitmap(bm);接收数据处理数据并显示照片。然后进行测试。另附源码:MainActivity:package com.example.administrator.myapplication1;import android.graphics.BitmapFactory;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import java.io.IOException;import android.net.Uri;import android.os.Bundle;import android.provider.MediaStore;import android.app.Activity;import android.content.ContentResolver;import android.content.Intent;import android.graphics.Bitmap;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends AppCompatActivity { private final String IMAGE_TYPE = "image/*"; private final int IMAGE_CODE = 0; private Button choose=null; private ImageView imgShow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init();} private void init() { choose=(Button) findViewById(R.id.button1); imgShow=(ImageView) findViewById(R.id.imgShow); choose.setOnClickListener(listener); } private OnClickListener listener=new OnClickListener(){ @Override public void onClick(View v) {setImage(); } }; private void setImage() { Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT); getAlbum.setType(IMAGE_TYPE); startActivityForResult(getAlbum, IMAGE_CODE); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { Bitmap bm = null; ContentResolver resolver = getContentResolver(); if (requestCode == IMAGE_CODE) { try { Uri originalUri = data.getData(); bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); imgShow.setImageBitmap(bm); } catch (IOException e) { e.printStackTrace(); } } }}
layout:activity_main.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选择照相" android:layout_marginRight="190dp" android:layout_marginTop="8dp" android:paddingBottom="2dp" android:background="#aabbcc" /> <ImageView android:id="@+id/imgShow" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="15dip" /></LinearLayout>
0 0
- android从相册中获取图片并将其显示在当前界面
- android 打开本地相册,并将选择的照片显示到当前界面
- android从相册中获取图片
- android 从相册中获取图片
- Android中使用OKHttp上传图片,从相机和相册中获取图片并剪切
- 从相机or相册获取图片并显示
- 跳转收集相册获取图片并返回显示在RecycleView中
- 从 相机 或者相册 获取图片显示在ImageView 上
- 从相机或者相册,获取图片显示在ImageView上
- Android 从相机或相册获取图片并裁剪
- Android 从相机或相册获取图片并剪切
- 【Android】使用系统相机或者从相册中获取图片资源并进行适当裁剪
- android通过拍照、相册获取图片并显示
- 从相册中获取图片
- Android开发——相册拍照_02.将拍照得到或相册中选择的图片显示在ImageView中
- android从网络获取图片并显示
- 将指定路径的图片,显示在android系统相册中
- android保存图片到本地并可以在相册中显示出来
- 准备要开始学习IOS系统编程了
- &引用 C++
- APP消息推送内容、推送频率如何选择? (推送率)
- extern 用法,全局变量与头文件
- Perl笔记
- android从相册中获取图片并将其显示在当前界面
- UI招聘之我思考
- 搭建Hadoop平台(一)之配置用户名及hosts文件
- codeforce 354A Vasya and Robot
- 基于Lae的ffmpeg播放器
- 《CSS设计指南》笔记--CSS工作原理
- 命令行下,使用Zookeeper的LogFormatter查看日志文件
- Android编程规范
- 破解zend studio 12.5