android開發之畫圖版

來源:互聯網
上載者:User

標籤:

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:
  1. Intent是一種運行時綁定(runtime binding)機制,它能在程式啟動並執行過程中串連兩個不同的組件。 通過Intent,你的程式可以向Android表達某種請求或者意願,Android會根據意願的內容選擇適當的組件來響應。 Intent不僅可用於應用程式之間,也可用於應用程式內部的Activity/Service之間的互動。
  2. 代碼
            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上面
  • 第二菜單:
  1. 在Activity函數裡面重寫onCreateOptionsMenu方法建立一個菜單;同時在menu中建立一個菜單檔案。
  2. Activity函數中的代碼:
    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.draw, menu);             return true;    }

     

  3. 重寫activity類的 onOptionsItemSelected(MenuItem)回調方法,每當有功能表項目被點擊時,android就會調用該方法,並傳入被點擊功能表項目。
  4. 把item.getItemId()擷取的資訊傳入listener類中(該類繼承了OnTouchListener),利用switch 語句來實現菜單功能;
  • 使用畫筆和畫布的時候應該注意:
  1. 畫筆和畫布設定顏色可以使用十六進位或者使用系統內建的顏色;
  2. 函數的不同:java中畫點是利用畫直線的方法,而android裡面是有專門的方法:canvas.drawPoint((x3 + x), (y3 + y), paint);
  3. draw函數中的數值都是float型;
  4. 在畫矩形的函數中void android.graphics.Canvas.drawRect(float left, float top, float right, float bottom, Paint paint):left是矩形左邊的線,top是上面;right是右邊,bottom是下面的線。
  5. pain.setAlpha(50);
    pain.setAntiAlias(true);// 改變鋸齒狀;

  • MotionEvent.ACTION_DOWN:按下
  • MotionEvent.ACTION_UP:鬆開
  • MotionEvent.ACTION_MOVE:移動
四:展示:

android開發之畫圖版

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.