欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Android --- 圖片的特效處理

系統 1933 0

Android --- 圖片處理的方法

轉換 - drawable To bitmap

縮放 - Zoom

圓角 - Round Corner

倒影 - Reflected


bitmapPrcess code:

    package com.learn.games;

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

public class bitmapProcess {

	// zoom
	public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h){
		int width = bitmap.getWidth();
		int height = bitmap.getHeight();
		Matrix matrix = new Matrix();
		
		float scaleWidth = w/(float)width;
		float scaleHeight = h/(float)height;
		matrix.postScale(scaleWidth, scaleHeight);
		
		Bitmap bitmap2 = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);
		return bitmap2;		
	}
	
	
	// drawable to bitmap
	public static Bitmap drawable2Bitmap(Drawable drawable){
		int width = drawable.getIntrinsicHeight();
		int height = drawable.getIntrinsicHeight();
		
		Bitmap bitmap = Bitmap.createBitmap(width, height, drawable.getOpacity() 
				!= PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565);
		
		Canvas canvas = new Canvas(bitmap);
		drawable.setBounds(0, 0, width, height);
		drawable.draw(canvas);
		
		return bitmap;
	}
	
	
	// Round Corner Bitmap
	public static Bitmap getRoundCornerBitmap(Bitmap bitmap, float roundPX){
		int width = bitmap.getWidth();
		int height = bitmap.getHeight();
		
		Bitmap bitmap2 = Bitmap.createBitmap(width, height, Config.ARGB_8888);
		Canvas canvas = new Canvas(bitmap2);
		
		final int color = 0xff424242;
		final Paint paint = new Paint();
		final Rect rect = new Rect(0, 0, width, height);
		final RectF rectF = new RectF(rect);

		paint.setColor(color);
		paint.setAntiAlias(true);
		canvas.drawARGB(0, 0, 0, 0);
		canvas.drawRoundRect(rectF, roundPX, roundPX, paint);
		
		paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
		canvas.drawBitmap(bitmap, rect, rect, paint);
		
		return bitmap2;
	}
	
	// Reflect Bitmap
	public static Bitmap createReflectedBitmap(Bitmap bitmap){
		final int reflectedGap = 4;
		int width = bitmap.getWidth();
		int height = bitmap.getHeight();
		
		Matrix matrix = new Matrix();
		matrix.preScale(1, -1);
		
		Bitmap reflectedImage = Bitmap.createBitmap(bitmap, 0, height/2, width, height/2, matrix, false);
		Bitmap reflectedBitmap = Bitmap.createBitmap(width, (height + height/2), Config.ARGB_8888);
		
		Canvas canvas = new Canvas(reflectedBitmap);
		canvas.drawBitmap(bitmap, 0, 0, null);
		Paint defaultPaint = new Paint();
		canvas.drawRect(0, height, width, height + reflectedGap, defaultPaint);
		canvas.drawBitmap(reflectedImage, 0, height + reflectedGap, null);
		
		Paint paint = new Paint();
		LinearGradient shader = new LinearGradient(0, bitmap.getHeight(), 0,
								reflectedBitmap.getHeight() + reflectedGap, 0x70ffffff, 0x00ffffff, TileMode.CLAMP);
		paint.setShader(shader);
		paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
		canvas.drawRect(0, height, width, reflectedBitmap.getHeight() + reflectedGap, paint);
		
		return reflectedBitmap;
	}
	
}

  

Java Code:

    package com.learn.games;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.ImageView;

public class MyBitmapProcessActivity extends Activity {
	private ImageView imgView1;
	private ImageView imgView2;
	private ImageView imgView3;
	private ImageView imgView4;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        drawBitmap();
    }
    
    
    private void drawBitmap(){
    	imgView1 = (ImageView)findViewById(R.id.imgView1);
    	imgView2 = (ImageView)findViewById(R.id.imgView2);
    	imgView3 = (ImageView)findViewById(R.id.imgView3);
    	imgView4 = (ImageView)findViewById(R.id.imgView4);
    	
    	Drawable drawable = this.getWallpaper();
    	
    	Bitmap bitmap = bitmapProcess.drawable2Bitmap(drawable);						// drawable to bitmap
    	Bitmap zoomBitmap = bitmapProcess.zoomBitmap(bitmap, 100, 100);					// zoom 
    	Bitmap roundBitmap = bitmapProcess.getRoundCornerBitmap(zoomBitmap, 10.0f);		// round corner 
    	Bitmap reflectedBitmap = bitmapProcess.createReflectedBitmap(zoomBitmap);		// reflect bitmap
    	
    	// drawable to bitmap
    	imgView1.setImageBitmap(bitmap);
    	imgView2.setImageBitmap(zoomBitmap);
    	imgView3.setImageBitmap(roundBitmap);
    	imgView4.setImageBitmap(reflectedBitmap);
    	
    	// bitmap to drawable
    	Drawable roundDrawable = new BitmapDrawable(roundBitmap);
    	Drawable reflectedDrawable = new BitmapDrawable(reflectedBitmap);
    	imgView1.setBackgroundDrawable(roundDrawable);
    	imgView2.setBackgroundDrawable(reflectedDrawable);
    }
}
  

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"
    >
 
     <ImageView android:id="@+id/imgView1"
    	android:layout_width="wrap_content" 
    	android:layout_height="wrap_content"/>
    	
    	
    <ImageView android:id="@+id/imgView2"
    	android:layout_width="wrap_content" 
    	android:layout_height="wrap_content"/>
    
    <ImageView android:id="@+id/imgView3"
    	android:layout_width="wrap_content" 
    	android:layout_height="wrap_content"/>
    	
    	
    <ImageView android:id="@+id/imgView4"
    	android:layout_width="wrap_content" 
    	android:layout_height="wrap_content"/>
    	
</LinearLayout>

  

效果圖:

drawable2bitmap

Android --- 圖片的特效處理

zoom

Android --- 圖片的特效處理

round corner

Android --- 圖片的特效處理

reflected bitmap

Android --- 圖片的特效處理





Android --- 圖片的特效處理


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产熟妇久久777777 | 欧美理论视频 | 精品视频一区二区三区四区 | 波多野结衣一区二区 | 亚洲性色成人 | 日本精品欧洲www | 国产麻豆传媒视频 | 91精品国产高清久久久久久91 | 天天干妹子 | 国产97人妻人人做人碰人人爽 | 日韩中文字幕免费版 | 91久久夜色精品国产九色 | 国产精品1区 | 波多野结衣一区二区三区四区 | 亚洲经典激情春色另类 | 二区三区不卡不卡视频 | 91九色论坛 | 精品乱子伦一区二区三区 | 热99这里只有精品 | 九九re6精品视频在线观看 | 久久95| 国产精品久久人妻无码网站一区无 | 日韩色小说 | 免费 视频 1级| 男女搞逼视频 | 亚洲香蕉久久一区二区三区四区 | 日本人丰满xxxxhd | 免费的av网站| 老色鬼久久AV综合亚洲健身 | 亚洲国产区| 久久69精品久久久久久国产越南 | 性香港xxxxx免费视频播放 | 亚洲欧美中文日韩在线v日本 | 国产婷婷色一区二区三区在线 | 久久综合狠狠色综合伊人 | 欧美日韩大尺码免费专区 | 在线观看毛片视频 | 欧美手机在线 | 久久精品亚洲成在人线av网址 | 亚洲精品三级 | 黄色免费av|