Android簡(jiǎn)易實(shí)戰(zhàn)教程--第三十話《撕衣美女》
來(lái)源:程序員人生 發(fā)布時(shí)間:2017-01-10 14:28:35 閱讀次數(shù):2612次
此篇邪惡1些,給單身屌絲發(fā)點(diǎn)“福利”,通過(guò)圖片的繪制,給美女脫掉衣服。
原理:圖片覆蓋圖片,通過(guò)畫(huà)筆對(duì)頂真?zhèn)€圖片做1些殊效處理,即手指觸摸的地方,設(shè)置為透明。便可顯示最底部的美女圖片。
布局:1張褻服,1張外衣
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/aneiyi"
/>
<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/awaiyi"
/>
</RelativeLayout>
代碼以下:
package com.itandroid.syf;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
public class MainActivity extends Activity {
private Bitmap bmCopy;
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bitmap bmSrc = BitmapFactory.decodeResource(getResources(), R.drawable.awaiyi);
// 1.創(chuàng)建1個(gè)與原圖1模1樣大小的bitmap對(duì)象
bmCopy = Bitmap.createBitmap(bmSrc.getWidth(), bmSrc.getHeight(), bmSrc.getConfig());
// 2.創(chuàng)建畫(huà)筆對(duì)象
Paint paint = new Paint();
// 3.創(chuàng)建畫(huà)板對(duì)象
Canvas canvas = new Canvas(bmCopy);
// 4.開(kāi)始作畫(huà)
canvas.drawBitmap(bmSrc, new Matrix(), paint);
iv = (ImageView) findViewById(R.id.iv);
//添加圖片觸摸事件
iv.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
//獲得x和y的坐標(biāo)
int x = (int) event.getX();
int y = (int) event.getY();
//算法
for(int i = ⑸; i <= 5; i++){//擴(kuò)大坐標(biāo)點(diǎn)的范圍
for(int j = ⑸; j <= 5; j++){
//把用戶(hù)劃過(guò)的坐標(biāo)置為透明色
//改變指定的像素色彩
if(Math.sqrt(i*i + j*j) <= 5){
//避免角標(biāo)越界
if(x + i < bmCopy.getWidth() && y + j < bmCopy.getHeight() && x + i >= 0 && y + j >= 0){
//直接指定x和y的坐標(biāo)置為第3個(gè)參數(shù)的色彩。即透明色
bmCopy.setPixel(x + i, y + j, Color.TRANSPARENT);
// 繪制后,再次設(shè)置最新的圖片情況,刷新顯示。
iv.setImageBitmap(bmCopy);
}
}
}
}
break;
}
return true;
}
});
}
}
運(yùn)行程序:

歡迎關(guān)注本博客點(diǎn)擊打開(kāi)鏈接 http://blog.csdn.net/qq_32059827,每天花上5分鐘,瀏覽1篇有趣的安卓小文哦
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)