中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

圖片處理Android工具類(縮放,圓角,倒影)

2018-07-20    來源:open-open

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用
package com.demo;

import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Shader.TileMode;

/**
 * 圖片處理工具類(縮放,圓角,倒影)
 * 
 */
public class ImageUtils {
	/**
	 * 圖片縮放
	 * 
	 * @param pBitmap
	 * @param pW
	 * @param pH
	 * @return
	 */
	public static Bitmap zoomBitmap(Bitmap pBitmap, int pW, int pH) {

		int _width = pBitmap.getWidth();// 獲取原圖的寬
		int _heigth = pBitmap.getHeight();// 獲取原圖的高

		// 獲取縮放比
		float _ScaleW = (float) pW / _width;
		float _ScaleH = (float) pH / _heigth;

		Matrix _Matrix = new Matrix();// 創(chuàng)建Matrix矩陣對象

		_Matrix.setScale(_ScaleW, _ScaleH);// 設置寬高的縮放比

		return Bitmap.createBitmap(pBitmap, 0, 0, _width, _heigth, _Matrix,
				true);// 對截原圖的0,0坐標到_width,_heigth的圖片進行_Matrix處理
	}

	/**
	 * 圖片圓角
	 * 
	 * @param pBitmap
	 * @param pRoundpx
	 * @return
	 */
	public static Bitmap RoundedCornerBitmap(Bitmap pBitmap, float pRoundpx) {

		Bitmap _NewBitmap = Bitmap.createBitmap(pBitmap.getWidth(),
				pBitmap.getHeight(), Config.ARGB_8888); // 創(chuàng)建圖片畫布大小
		Canvas _Canvas = new Canvas(_NewBitmap); // 創(chuàng)建畫布
		_Canvas.drawARGB(0, 0, 0, 0); // 設置畫布透明
		Paint _Paint = new Paint(); // 創(chuàng)建畫筆
		_Paint.setAntiAlias(true); // 抗鋸齒
		_Paint.setColor(0xff000000);// 畫筆顏色透明

		// 畫與原圖片大小一致的圓角矩形
		Rect _Rect = new Rect(0, 0, pBitmap.getWidth(), pBitmap.getHeight());
		RectF _RectF = new RectF(_Rect);
		_Canvas.drawRoundRect(_RectF, pRoundpx, pRoundpx, _Paint);

		_Paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));// 設置下面張圖片與上面張圖片的交互模式
		_Canvas.drawBitmap(pBitmap, _Rect, _Rect, _Paint);// 畫原圖到畫布
		return _NewBitmap;
	}

	/**
	 * 圖片倒影
	 * 
	 * @param pBitmap
	 * @return
	 */
	public static Bitmap ReflectionImageWithOrigin(Bitmap pBitmap) {
		// 創(chuàng)建等寬,高+高/5的畫布
		Bitmap _NewBitmap = Bitmap
				.createBitmap(pBitmap.getWidth(),
						pBitmap.getHeight() + pBitmap.getHeight() / 5,
						Config.ARGB_8888);
		Canvas _Canvas = new Canvas(_NewBitmap);

		_Canvas.drawBitmap(pBitmap, 0, 0, null);// 畫上原圖

		// 原圖翻轉,
		Matrix _Matrix = new Matrix();
		_Matrix.preScale(1, -1);
		Bitmap _Bitmap = Bitmap.createBitmap(pBitmap, 0, 0, pBitmap.getWidth(),
				pBitmap.getHeight(), _Matrix, true);

		// 在剩余畫布上畫上翻轉圖
		_Canvas.drawBitmap(_Bitmap, 0, pBitmap.getHeight(), null);
		Paint _Paint = new Paint();

		// 實現(xiàn)圖片的漸變效果
		LinearGradient shader = new LinearGradient(0, pBitmap.getHeight(), 0,
				_NewBitmap.getHeight(), 0x70ffffff, 0x00ffffff, TileMode.CLAMP);
		_Paint.setShader(shader);
		_Paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
		_Canvas.drawRect(0, pBitmap.getHeight(), pBitmap.getWidth(),
				_NewBitmap.getHeight(), _Paint);
		return _NewBitmap;
	}

}

標簽:

版權申明:本站文章部分自網絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:用zxing生成、解析二維碼

下一篇:Android 開機自啟動代碼