1.收獲
一個月的集訓雖然過去了涨颜,但是我們也不能放飛自我,還是繼續(xù)努力茧球,學了并不代表你一定就會庭瑰,學了并不代表你就記住了,學了并不代表你就不學了抢埋。我們就是要好好利用一個空閑的時間把自己以前不懂的弹灭,忘記的可以好好的去看一看督暂,理解一下,去問一下穷吮,只有這樣才能夠提升自己逻翁,讓自己不斷進步,自己也明白捡鱼,單靠自己的努力是不行的八回,還有方法,有了正確的方法驾诈,就可以節(jié)省很多的時間辽社,這些事件有可以拿來做其他的事。人在做翘鸭,天在看5吻Α!
2.技術
(1)TearCloth項目的重寫
(2)修改項目的圖標和名稱
(3)在TearCloth項目中的Bitmap和matrix的使用
3.技術的實際應用與實踐
(1)TearCloth項目的重寫
說實話在重寫的過程中自己還遇到了許多的問題就乓,但是自己不管事在網上查找還是問別人最終還都解決了的汉匙。
首先,我么在xml文件中進行圖片操作生蚁,由于在這個項目中會有圖片的重疊噩翠,我們就選擇了FrameLayout的布局方式
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bg"/>
<ImageView
android:id="@+id/iv_backgrand"
android:src="@drawable/bg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
然后再MainActivity.java中進行操作
//配置界面
setContentView(R.layout.activity_main);
//找到容器里面的圖片視圖控件
//findViewByid
final ImageView forgound=findViewById(R.id.iv_backgrand);
//將需要操作的圖片讀取出來 Bitmap
//BitmapFactory 用于管理位圖
//decodeResource 從工程的資源路徑中去生成一張位圖
//getResources() 獲取工程的資源
//R.drawable.fr 訪問資源路徑下 drawable里面的一個文件名為fr的資源
Bitmap orgBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.fr);
//不能在原圖上進行操作 要進行copy一份
//操作這張圖片 用透明色去替換某個位置的顏色
//不能操作原圖 只能拷貝一份
final Bitmap bitmap=Bitmap.createBitmap(orgBitmap.getWidth(),orgBitmap.getHeight(),orgBitmap.getConfig());
//創(chuàng)建一個畫板
Canvas canvas=new Canvas(bitmap);
//創(chuàng)建一支筆
Paint paint=new Paint();
//創(chuàng)建一個矩陣
final Matrix matrix=new Matrix();
//平移
//matrix.setTranslate(500,10);
//縮放 set只作用一次 post可作用多次
//matrix.setScale(-1f,1f);
//matrix.postTranslate(orgBitmap.getWidth(),0);
//旋轉
//matrix.setRotate(180,480,800);
//畫一幅畫
canvas.drawBitmap(orgBitmap,matrix,paint);
//顯示一幅畫 最開始的上面的
forgound.setImageBitmap(bitmap);
//進行操作 添加觸摸事件
//給前景圖片添加touch事件
//當有觸摸事件發(fā)生 系統(tǒng)就會將這個事件接收并回調這個事件
forgound.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
//獲取事件
int action=motionEvent.getAction();
//判斷是什么事件
if(action==MotionEvent.ACTION_MOVE){
//得到出沒的坐標
int x=(int) motionEvent.getX();
int y=(int) motionEvent.getY();
//改變像素 以及周圍的像素
for (int i = 0; i<=30; i++) {
for (int j = 0; j <=30; j++) {
bitmap.setPixel(x+i,y+j,Color.TRANSPARENT);
}
}
//將操作的圖片放到容器中
forgound.setImageBitmap(bitmap);
}
return true;
}
});
}
在接下來的第三點中我們就來解釋一下MainActivity.java一些比較不容易理解的點
(2)修改項目的圖標和名稱
當我們做完一個項目后,加入對自己的項目名稱不滿意怎末辦邦投,對項目的圖標不滿意怎末辦伤锚,應為項目的圖標是系統(tǒng)自己弄的
A.修改項目的名稱
首先我們找的res下面的values的string.xml文件:
然后再在里面進行修改:
B.修改項目圖標
當我們在做一個項目時,項目的圖標是由系統(tǒng)來定的志衣,如果我們想要修改項目圖標的話屯援,就需要滿足一定的條件,就是圖標的像素(大心罡)與系統(tǒng)的一樣狞洋。
那我們怎么知道系統(tǒng)圖標的大小:
我們先找到res下面的mipmap資源,找到ic_launcher文件绿店,然后打開里面的圖片文件
此時我們需要自己進行制作圖標吉懊,圖標做好后將圖標拖到mipmap資源就可以了:
然后我們要對一些代碼進行修改:
先找到AndroidMainfest.xml,然后打開它
(3)在TearCloth項目中的Bitmap和matrix的使用
Android中的圖片處理(Bitmap)
- Bitmap:這是一個對圖像進行操作的方法,Bitmap相當于是一個畫架假勿。
- 將需要操作的圖片讀取出來 Bitmap
- BitmapFactory 用于管理位圖
- decodeResource 從工程的資源路徑中去生成一張位圖
- getResources() 獲取工程的資源
- R.drawable.fr 訪問資源路徑下 drawable里面的一個圖片的資源
Bitmap orgBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.fr);
不能在原圖上操作所以我們要重新要復制一份
//先得到原位圖圖的大小和屬性
Bitmap bitmap=Bitmap.creatBitmap(orgBitmap.getWidth(),orgBitmap.getHeight(),orgBitmap.getConfig())
//創(chuàng)造一個畫板 屬于bitmap的畫板
Canvas canvas=new Canvas(bitmap);
//創(chuàng)造一支筆
Paint panit=new Paint();
//創(chuàng)造一個矩陣 對復制過來的圖片進行創(chuàng)造
Matrix matrix=new Matrix();(下面講解Matrix的用法)
//在畫板上畫出 按照原圖改變的
Canvas.drawBitmap(orgBitmap,matrix,print);
//在背景圖上顯示改變后的圖片
Forground.setImageBitmap(bitmap);
//然后就是添加觸摸按事件 監(jiān)聽者(背景圖片的監(jiān)聽者 )
forground.setOnTouchListener(new View.OnTouchListener)