一诡必、目的
1.進入到安卓開發(fā)的學(xué)習(xí),先總覽一下安卓開發(fā)搔扁,初步了解
2.學(xué)習(xí)各個目下面的東西的意義爸舒,用來做什么
二、知識點
1.界面了解
2.安卓的基本知識
Android里面大部分的控件都會提供很多方法 這些方法只需要自己重寫 不需要自己主動調(diào)用
什么是Activity稿蹲? 就是一個界面
管理一個界面從創(chuàng)建到運行到結(jié)束的整個過程(生命周期)
配置界面 onCreate 這個方法是系統(tǒng)調(diào)用的(自己不要用)
效果 | 方法 |
---|---|
啟動界面 | onStart |
重新啟動 | onRestart |
喚醒界面 | onResume |
暫停界面 | onPause |
銷毀界面 | onDestroy |
具體操作 | 調(diào)用的方法 |
---|---|
1.界面啟動 | onCreate扭勉、onStart、 onResume |
2.點擊home鍵 回到主界面 | onPause |
3.通過后臺 重新運行這個程序 | onRestart苛聘、 onStart涂炎、 onResume |
4.使用返回鍵 返回到主界面 | onPause |
3. 使用兩種方式界面布局
1.xml配置
2.使用Java代碼創(chuàng)建
(使用情況請參考第8條)
默認一個Activity對應(yīng)一個xml配置文件
命名特點:activity_界面功能.xml
xml就是一個容器:可以放很多UI控件
種類 | 布局 | 特點 |
---|---|---|
1.約束布局 | ConstraintLayout | 用的較多 |
2.線性布局 | LinearLayout | 垂直或水平 |
3.相對布局 | RelativeLayout | 。 |
4.幀布局 | FrameLayout | 允許重疊 |
5.表格布局 | TableLayout | GridLayout |
6.絕對布局 | AbsoluteLayout |
4.控件
控件: 就是一個視圖设哗,看得到的東西
1.基礎(chǔ)階段:學(xué)習(xí)系統(tǒng)自帶的控件 熟悉
TextView EditText Button ImageView ListView RecycleView ScrollView
ViewPager ProgressBar Switch
2.高級階段:自定義
1.在已有的控件基礎(chǔ)之上加上自己的功能 (就是繼承)
2.自己畫
5. 控件尺寸
(將一個控件添加到一個容器中璧尸,控件就是容器的子視圖,容器就是控件的父視圖)
1.match_parent :和父視圖一樣大
2.wrap_content: 包裹內(nèi)容 和控件的內(nèi)容一樣大
3.20dp :具體尺寸
6.程序或某個UI模塊更改樣式:
1.在values下的styles.xml更改
e.g
不要工具條:
將<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
改為<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
2.寫出來的application的風(fēng)格(圖標(biāo)logo熬拒、名字……)
7.使用Java代碼來布局界面
通過添加id可以唯一標(biāo)識某一個控件 或者 組件(容器)
android:id="@+id/fl_main"
//1.找一個容器 xxlayout
FrameLayout container = new FrameLayout(this);
//2.設(shè)置當(dāng)前這個界面的內(nèi)容視圖為這個容器
setContentView(container);
//3.創(chuàng)建一個子視圖
//創(chuàng)建ImageView顯示圖片
//命名:ImageView ivBackground =
ImageView bgImageView = new ImageView(this);
//設(shè)置屬性
bgImageView.setBackgroundColor(Color.BLUE);
//添加到容器里面
container.addView(bgImageView,container.getWidth(),container.getHeight());
}
8.布局方式的選擇
xml:解耦 安卓中推薦使用xml
如果添加的控件是靜態(tài)的 (變化的東西不多): 選擇xml
如果需要靈活地操作這個控件 : ——選擇代碼
9.項目思路
ps:項目要求:達到觸摸擦除現(xiàn)有圖片顯現(xiàn)被覆蓋的內(nèi)容
使用透明色去替換原有圖片的對應(yīng)的像素 不能寫死
立刻獲取替換之后的圖片 將圖片顯示在ImageView上
三爷光、實際應(yīng)用
-
選取圖片,一張作為底圖澎粟,另一張作為表圖
表圖:a2
底圖:
a1
- 將圖片復(fù)制到drawable下(注意:此處兩張圖片的名字只能以英文字母開頭蛀序,并且不能有一些符號欢瞪,如:“-”,如果報錯就按照要求來改)
-
xml文件內(nèi)容
- .java文件下的代碼
public class MainActivity extends AppCompatActivity {
Paint paint;
ImageView forground;
Bitmap copyBitmap;
Canvas canvas;
Matrix matrix;
Bitmap orgBitmap;
@Override//創(chuàng)建一個界面 并布局
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//配置界面
setContentView(R.layout.activity_main);
//找到容器里面的圖片視圖控件
//findViewById
forground = findViewById(R.id.iv_forground);
//將需要操作的圖片讀取出來 Bitmap
//BitmapFactory 用于管理位圖
//decodeResource 從工程的資源路徑去找到并生成一張位圖
//getResources 獲取工程的資源
//R.drawable.a2 訪問資源路徑下 drawable里面的一個名為a2的文件
orgBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.a2);
//操作這張圖片:用透明色替換原顏色
//注意徐裸;不能操作原圖 只能copy一份
//創(chuàng)建一個和原始圖片相同環(huán)境的空位圖
copyBitmap = Bitmap.createBitmap(orgBitmap.getWidth(),orgBitmap.getHeight(),orgBitmap.getConfig());
//創(chuàng)建一個canvas 畫布(理解:現(xiàn)實中的畫板)
canvas = new Canvas(copyBitmap);
//創(chuàng)建一個畫筆
paint = new Paint();
//創(chuàng)建一個矩陣
matrix = new Matrix();
// //旋轉(zhuǎn)圖片
// matrix.setRotate(90,400,400);
//
// //平移 200:正方向走200像素 -400:負方向走400像素
// matrix.setTranslate(copyBitmap.getWidth()/2,0);
//
// //對坐標(biāo)的設(shè)置
// //翻轉(zhuǎn) set 作用一次 post作用多次
// matrix.setScale(-1f,1f);
// matrix.postTranslate(copyBitmap.getWidth(),0);
//
//畫一幅圖
canvas.drawBitmap(orgBitmap,matrix,paint);
//顯示圖片
forground.setImageBitmap(copyBitmap);
//給前景圖片添加touch事件 接口—方法
//當(dāng)有觸摸事件發(fā)生 系統(tǒng)就會將這個事件接收并回調(diào)事件
forground.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
//獲取當(dāng)前事件
int action = event.getAction();
//判斷狀態(tài)
if(action == MotionEvent.ACTION_MOVE){
//獲取觸摸點的坐標(biāo)
int x = (int)event.getX();
int y = (int)event.getY();
//替換得到x遣鼓,y的像素
for(int i = -500;i<5000;i++) {
for (int j = -500; j < 5000; j++) {
copyBitmap.setPixel( x + i, y + j, Color.TRANSPARENT);
}
}
//顯示圖片
forground.setImageBitmap(copyBitmap);
}
return true;
}
});
}
}
四、心得:
一件重要事重贺,即使它讓人不解骑祟、讓人疲憊不堪、有時候?qū)W的讓人‘惡心’气笙,也要去做次企,就當(dāng)'負重前行'好了。
記得于果的一首歌里是這樣
有風(fēng)險才蛻變 時間總會說出再見