Android开发 利用imageview显示选取的手机内存的图片。activity_main.xml:
MainActivity.java文件:
package com.example.imageview; import java.io.File; import java.io.FileNotFoundException; 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.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends Activity { private Button selectImage; private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle("ImageView"); setContentView(R.layout.activity_main); selectImage = (Button) this.findViewById(R.id.selectImage); imageView = (ImageView) this.findViewById(R.id.imageView); selectImage.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO 自动生成的方法存根 Intent intent = new Intent(); //打开pictures画面Type设置为image intent.setType("image/*"); //使用Intent.ACTION_GET_CONTENT 这个Action intent.setAction(Intent.ACTION_GET_CONTENT); //取得像片后返回本画面 startActivityForResult(intent, 1); } }); } /** * 定义方法onActivityResult来处理用户挑选的图片。通过requestCode和resultCode返回标识码,数据类型为Intent的data参数, * 调用Intent对象的getData()方法可以获得具体内容。 */ protected void onActivityResult(int requestCode,int resultCode,Intent data){ if (resultCode==RESULT_OK){ Uri uri=data.getData(); ContentResolver cr=this.getContentResolver(); try{ Bitmap bitmap=BitmapFactory.decodeStream(cr.openInputStream(uri)); //将Bitmap设置到imageView imageView.setImageBitmap(bitmap); }catch(FileNotFoundException e) { e.printStackTrace(); } } super.onActivityResult(requestCode, resultCode, data); } }
在AndroidManifest.xml文件中添加权限: