安卓開發(fā)| 粗略了解

一诡必、目的

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熬拒、名字……)

中設(shè)置

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)容
    (注:去掉android:src="@drawable/a2")

  • .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)險才蛻變 時間總會說出再見

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末潜圃,一起剝皮案震驚了整個濱河市缸棵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谭期,老刑警劉巖堵第,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異隧出,居然都是意外死亡踏志,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門胀瞪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來针余,“玉大人,你說我怎么就攤上這事赏廓『桑” “怎么了傍妒?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵幔摸,是天一觀的道長。 經(jīng)常有香客問我颤练,道長既忆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任嗦玖,我火速辦了婚禮患雇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宇挫。我一直安慰自己苛吱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布器瘪。 她就那樣靜靜地躺著翠储,像睡著了一般绘雁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上援所,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天庐舟,我揣著相機與錄音,去河邊找鬼住拭。 笑死挪略,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的滔岳。 我是一名探鬼主播杠娱,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼澈蟆!你這毒婦竟也來了墨辛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤趴俘,失蹤者是張志新(化名)和其女友劉穎睹簇,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寥闪,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡太惠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了疲憋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凿渊。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖缚柳,靈堂內(nèi)的尸體忽然破棺而出埃脏,到底是詐尸還是另有隱情,我是刑警寧澤秋忙,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布彩掐,位于F島的核電站,受9級特大地震影響灰追,放射性物質(zhì)發(fā)生泄漏堵幽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一弹澎、第九天 我趴在偏房一處隱蔽的房頂上張望朴下。 院中可真熱鬧,春花似錦苦蒿、人聲如沸殴胧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽团滥。三九已至免胃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惫撰,已是汗流浹背羔沙。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厨钻,地道東北人扼雏。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像夯膀,于是被迫代替她去往敵國和親诗充。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容