總說
總的來說诡曙,今天的學(xué)習(xí)是比較輕松的谁不,畢竟接觸了真正的開發(fā)手段钠导。真正的使用Android Studio設(shè)計開發(fā)一個應(yīng)用程序的感覺還挺不錯的震嫉。今天的項目是開發(fā)一個撕衣服軟件,手指滑動 衣服消失牡属。在學(xué)習(xí)項目的同時說明界面開發(fā)的方法以及如何使用票堵。開始今天的筆記
首先開始今天筆記
/**
- Activity——— 一個界面
- 管理一個界面從創(chuàng)建到運行的過程
- 1.創(chuàng)建界面 Create
- 2.啟動界面 Start
- 3.重啟界面
- 4.暫停界面 Pause
- 5.銷毀界面 Destroy
- 界面祈禱那個
onCreate
onStart
onResume
- 點擊home鍵 返回主界面
onPause
銅鼓后臺重新運行主程序
onRestart
onStart
onResume
- 使用返回鍵返回主頁面
onPause、
onStart
onResume
使用倆種方式界面布局
xml配置
使用Java代碼創(chuàng)建
- 默認一個Activity對應(yīng)的配置文件
- 命名特點 activity_界面功能.xml
- xml空文件據(jù)說一個容器 可以放很多控件
- 布局 這么多控件該怎么布局
- 1.約束布局 ConstraintLayout
- 2.線性布局 LineratLayout 垂直 水平
- 3.相對布局
- 4.幀布局
*5.表格布局 - 6絕對布局
*/
/**
- 1.學(xué)習(xí)自帶控件 熟悉
- TestView EditTest Button ImageView ListView
- RecycleView ScrollView ViewPager ProgressBar
- Switch
- 2.高級階段 自定義
- 1.在已有的控件的基礎(chǔ)上加上自己的功能 繼承
- 2.自己做
*/
/**
- 控件的尺寸
- 父視圖
- 子視圖
- 將一個控件放到一個容器中 控件就是容器的子視圖
- 容器是空間的父視圖
- 1.match_parent 和父視圖一樣大
- 2.warp_content 包括內(nèi)容 和控件的內(nèi)容一樣大
- 20dp 具體尺寸
*/
- 20dp 具體尺寸
/**
- 一個控件就是一個類的具體對象
- ImageView
- 屬性
- 方法
- 程序或者某個Ui板塊都可以有自己的樣式板塊Style
- 可以在styles.xml文件里面定義
- 不需要ActionBar 可以改成NoActionBar
*/
/**
- 什么時候需要使用代碼區(qū)創(chuàng)建 什么時候使用xml配置
- 若干需要添加的控件是靜態(tài)的 (變化的東西不多)選擇xml配置
- 如果余姚靈活的操作這個控件 選擇代碼創(chuàng)建
*/
操作過程
-
明確目的
首先逮栅,要完成這個項目悴势,要了解他的構(gòu)架,要完成他首先要將它弄成倆張圖片措伐,一張圖片有衣服特纤,一張沒有,在手指劃過的地方的衣服像素轉(zhuǎn)化為透明像素侥加,暴露出下面的圖片捧存。即可完成這個目的。
-
導(dǎo)入圖片
將沒衣服的圖片A作為背景圖導(dǎo)入担败,有衣服的圖B導(dǎo)入覆蓋昔穴,并且給B一個圖片id方便后面的操作。代碼如下
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:id="@+id/fl_main"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/bg" />
<ImageView
android:id="@+id/iv_forpart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/fr" />
</>
-
建立一個容器
這個容器里面放著我們操作需要的工具以及方法提前,首先我們要建立這個容器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
然后吗货,我們還要把材料庫里面的圖片找到并且載入。同時復(fù)制一份圖片出來用于后面的操作(PS :不能對原圖進行操作岖研,會報錯)
//找到容器里面的圖片視圖控件
//findImageViewById
ImageView forground=findViewById(R.id.iv_forpart);
//將需要操作的圖片讀取出來
//BitmapFactory 用于管理位圖
//decodeByteArray 從工程中申成一張位圖
//getResource() 獲取工程資源
//R卿操。drawable.fr 圖片具體資源路徑
Bitmap orgBitmip= BitmapFactory.decodeResource(getResources(),R.drawable.fr);
Bitmap copyBitmap=Bitmap.createBitmap(orgBitmip.getWidth(),orgBitmip.getHeight(),orgBitmip.getConfig());
創(chuàng)建一個畫布警检,并且對復(fù)制的圖片進行操作,操作完成后把圖片顯示出來
//操作這張圖片害淤。用透明色區(qū)替換這張圖片的部分
//不能操作原圖
orgBitmip.setPixel(240,400,Color.WHITE);
//創(chuàng)建一個畫布 Canvas
Canvas canvas=new Canvas(copyBitmap);
//顯示圖片
forground.setImageBitmap(orgBitmip);
//創(chuàng)建一個畫筆
Paint paint=new Paint();
//創(chuàng)建一個矩陣
Matrix matrix=new Matrix();
//選擇圖片
//旋轉(zhuǎn)圖片matrix.setRotate(90,240,400);
//平移
// matrix.setTranslate(100,0);
//翻轉(zhuǎn)
matrix.setScale(-1f,-1f);
//畫一幅畫
canvas.drawBitmap(orgBitmip,matrix,paint);
//顯示圖片
forground.setImageBitmap(copyBitmap);
結(jié)語
雖然好多不懂扇雕,但是比起剛剛開始的那個小程序來說。還是理解了一些東西窥摄∠夥睿總的來說有點進步,但是還是有好多錯誤崭放,一些運行時出現(xiàn)的錯誤野沒辦法解決哨苛,還是讓我抓老殼,希望以后能順暢的解決這些問題币砂。