標籤:
android開發之畫圖版一.新的開始,也是新的挑戰:
- 開始學習java,除了剛開始的時候有些難,覺得難有些暈,慢慢接觸之後也就挺好的了, 學習了4天的安卓開發,完成了一個小程式,收穫還是不小的;有一些java的基礎,所以相對的畫圖板還是比較簡單(對於理解代碼而言);但是因為android和java有不一樣的地方,所以有些地方應該要注意;不管怎麼說新鮮的東西,新的起點。頑張って。
二.初識android:
- android開發,第一個印象就是,測試麻煩;要用虛擬機器或者接上手機,第一次測試的時候,挺不習慣的。
- 第二點:介面是在layout上面設定的,android開發像是把很多的東西都分門別類了一樣,有圖片的檔案包,有id,有value包;所以說,剛開始的時候,瞭解每個包的作用是開始的第一步。
- 在android開發中,有一點不習慣的是android的介面,並不像java中的那樣是畫在JFrame中。首先設計的是用線性布局來設定,一個垂直的線性布局(LinearLayout)中添加幾個水平的線性布局來使用。雖然剛開始的時候放了很多的錯誤,用錯了方法,不熟悉開發的軟體,不過最後還是完成了。
- 下面是layout中組件與組件中控制距離的方法,
- 另外和java不同的是,設定顏色的方法;在java中Color是一個類,但是android開發裡面用的是十六進位來表示;雖然系統會內建一些顏色,不過要定義新的顏色的時候,就不能像java中那樣,new 一個Color對象;而是:paint.setTextColor(0xffff00ff);//其中:0xffff00ff是int類型的資料,分組一下0x|ff|ff00ff,0x表示顏色整數的標記,ff表示透明度,ff00ff表示色值,注意:0x後面ffff00ff必須是8位的顏色表示。顏色和不透度 (alpha) 值以十六進位標記法表示。任何一種顏色的值範圍都是 0到 255(00到 ff)。對於 alpha,00表示完全透明,ff表示完全不透明。運算式順序是“aabbggrr”,其中“aa=alpha”(00到ff);“bb=blue”(00到ff);“gg=green”(00到ff);“rr=red”(00到ff)。
- 另外java代碼也有些不一樣;
三.畫圖版:
- 這次做了一個自己的畫圖版,因為之前已經寫過,所以花的時間不是很長,也比較容易,不過代碼中值得注意的是還是有很多的;
- 第一個就是監聽方法的不一樣:java中用的是add...,而android中使用的set...,android中OnClickListener用來監聽滑鼠點擊相當於java中的ActionListener,OnTouchListener介面是用來處理手機螢幕事件的監聽介面,當為View的範圍內觸摸按下、抬起或滑動等動作時都會觸發該事件。
- 當點擊之後要進入一個新的介面的時候使用的是Intent:
- Intent是一種運行時綁定(runtime binding)機制,它能在程式啟動並執行過程中串連兩個不同的組件。 通過Intent,你的程式可以向Android表達某種請求或者意願,Android會根據意願的內容選擇適當的組件來響應。 Intent不僅可用於應用程式之間,也可用於應用程式內部的Activity/Service之間的互動。
- 代碼
Intent intent = new Intent(); intent.setClass(ma, DrawActivity.class); ma.startActivity(intent); //setClass函數的第一個參數是一個Context對象 //Context是一個類,Activity是Context類的子類,也就是說, //所有的Activity對象,都可以向上轉型為Context對象 //setClass函數的第二個參數是一個Class對象, //在當前情境下,應該傳入需要被啟動的Activity類的class對象
- android中畫圖時 使用Paint畫筆,畫在Canvas畫布上,再存到Bitmap位元影像上面,然後再把位元影像放到ImagineView上面
- 第二菜單:
- 在Activity函數裡面重寫onCreateOptionsMenu方法建立一個菜單;同時在menu中建立一個菜單檔案。
- Activity函數中的代碼:
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.draw, menu); return true; }
- 重寫activity類的
onOptionsItemSelected(MenuItem)
回調方法,每當有功能表項目被點擊時,android就會調用該方法,並傳入被點擊功能表項目。
- 把item.getItemId()擷取的資訊傳入listener類中(該類繼承了OnTouchListener),利用switch 語句來實現菜單功能;
- 畫筆和畫布設定顏色可以使用十六進位或者使用系統內建的顏色;
- 函數的不同:java中畫點是利用畫直線的方法,而android裡面是有專門的方法:canvas.drawPoint((x3 + x), (y3 + y), paint);
- draw函數中的數值都是float型;
- 在畫矩形的函數中void android.graphics.Canvas.drawRect(float left, float top, float right, float bottom, Paint paint):left是矩形左邊的線,top是上面;right是右邊,bottom是下面的線。
pain.setAlpha(50);
pain.setAntiAlias(true);// 改變鋸齒狀;
- MotionEvent.ACTION_DOWN:按下
- MotionEvent.ACTION_UP:鬆開
- MotionEvent.ACTION_MOVE:移動
四:展示:
android開發之畫圖版