Bitmap的使用(三)

来源:互联网 发布:只有我知上海见面会 编辑:程序博客网 时间:2024/05/22 12:04

打开相册:

Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

startActivityForResult(intent, 0);

返回的Intent data是一个图片的uri

用BitmapFactory.decodeStream(getContentResolver().openInputStream(uri), null, param)

package com.example.androidtest;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;import android.net.Uri;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;import android.util.Log;import java.io.FileNotFoundException;public class MainActivity extends Activity implements OnClickListener {ImageView chosenImageView;Button choosePicture;public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);chosenImageView = (ImageView)findViewById(R.id.ChosenImageView);choosePicture = (Button)findViewById(R.id.ChoosePictureButton);choosePicture.setOnClickListener(this);}public void onClick(View v){Intent choosePictureIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);startActivityForResult(choosePictureIntent, 0);}protected void onActivityResult(int requestCode, int resultCode, Intent data){super.onActivityResult(requestCode, resultCode, data);if (resultCode == RESULT_OK) {Uri imageFileUri = data.getData();try {BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();bmpFactoryOptions.inJustDecodeBounds = true;Bitmap bmp = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageFileUri), null, bmpFactoryOptions);bmpFactoryOptions.inSampleSize = 2;bmpFactoryOptions.inJustDecodeBounds = false;bmp = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageFileUri), null, bmpFactoryOptions);Bitmap alteredBitmap = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), bmp.getConfig());Canvas canvas = new Canvas(alteredBitmap);Paint paint = new Paint();canvas.drawBitmap(bmp, 0, 0,  paint);ImageView alteredImageView = (ImageView)findViewById(R.id.AlteredImageView);alteredImageView.setImageBitmap(alteredBitmap);chosenImageView.setImageBitmap(bmp);} catch (FileNotFoundException e) {Log.v("ERROR", e.toString());}}}}

activity_mail.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><Button    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="Choose Picture" android:id="@+id/ChoosePictureButton"/><ImageView android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/ChosenImageView"></ImageView><ImageView android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/AlteredImageView"></ImageView></LinearLayout>


0 0
原创粉丝点击