图片处理--压缩图片

package douban.day05.loudimager;

import douban.day05.loudimager.utils.ThumbnailUtilsWrapper;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;

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;

/**
 * 需求: 用户从图库中加载一张图片进来
 * 
 * @author zxc
 * 
 */
public class LoudImagerActivity extends Activity implements OnClickListener {

	private Button bt_1;
	private Button bt_2;
	private ImageView iv;
	private Button bt_3;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		bt_1 = (Button) this.findViewById(R.id.bt_1);
		bt_2 = (Button) this.findViewById(R.id.bt_2);
		bt_3 = (Button) this.findViewById(R.id.bt_3);
		iv = (ImageView) this.findViewById(R.id.iv);
		bt_1.setOnClickListener(this);
		bt_2.setOnClickListener(this);
		bt_3.setOnClickListener(this);
	}

	public void onClick(View v) {
		switch (v.getId()) {
		// 从gllay中取出图片
		case R.id.bt_1:
			/*
			 * cmp=com.android.gallery/com.android.camera.GalleryPicker
			 */

			Intent oneIntent = new Intent();
			// 这种方式访问必须要在自己程序使用 不可以访问外部程序
			// oneIntent.setClassName("com.android.camera",
			// "com.android.camera.GalleryPicker ");

			/*
			 * 隐身意图 // 打开系统的图库 获取一个图 <intent-filter> <action
			 * android:name="android.intent.action.PICK" /> <category
			 * android:name="android.intent.category.DEFAULT" /> <data
			 * android:mimeType="image/*" /> <data android:mimeType="video/*" />
			 * </intent-filter>
			 */
			oneIntent.setAction("android.intent.action.PICK");
			oneIntent.addCategory("android.intent.category.DEFAULT");
			oneIntent.setType("image/*");
			startActivityForResult(oneIntent, 0);
			break;
		// 从sd卡路径取出图片
		case R.id.bt_2:
			BitmapFactory.Options opts = new Options(); // 定义图片的解析的参数对象
			opts.inSampleSize = 8; // 按照原图的1/8进行图片的解析
			Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/img.JPG", opts);
			iv.setImageBitmap(bitmap);
			break;
			//谷歌提供
		case R.id.bt_3:
			Bitmap bitmap1 = BitmapFactory.decodeFile("/sdcard/img.JPG");
			System.out.println("bitmap的高度"+bitmap1.getHeight());
			System.out.println("bitmap2的宽度"+bitmap1.getWidth());
			Bitmap bitmap2 =ThumbnailUtilsWrapper.extractThumbnail(bitmap1, 2, 2);
			System.out.println("bitmap的高度"+bitmap2.getHeight());
			System.out.println("bitmap2的宽度"+bitmap2.getWidth());
			
			break;
		default:
			break;
		}
	}

	
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (null != data) {
			Uri uri = data.getData();
			iv.setImageURI(uri);
		}
		super.onActivityResult(requestCode, resultCode, data);
	}

}

package douban.day05.loudimager.utils;

import android.graphics.Bitmap;
/**
 * 返回一个缩略图
 * @author zxc
 *
 */
public class ThumbnailUtilsWrapper {

	static {
		try {
			Class.forName("android.media.ThumbnailUtils");
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	public static void checkAvailable() {
	}
	/**
	 * 
	 * @param source 图片资源
	 * @param width  宽度
	 * @param height	高度
	 * @return	按照比例的图
	 */
	public static Bitmap extractThumbnail(final Bitmap source, final int width,
			final int height) {
		return android.media.ThumbnailUtils.extractThumbnail(source, width,
				height, android.media.ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
	}

}
ThumbnailUtils是应该是对多媒体的压缩 例如 影视 这个类还不是很清楚是什么意思?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值