Android新手入門2016(16)--畫圖

來源:互聯網
上載者:User

Android新手入門2016(16)--畫圖

畫圖設計到圖片的格式,有空可以看看圖片資源各種格式。瞭解一片格式,對學習有用的。而且我面試別人的時候也很喜歡問這個問題,哈哈。

先看個圖。

直接看代碼吧,注釋很詳細了。

activity_hello_world.xml

 

          
HelloWorldActivity.java

 

 

package com.fable.helloworld;    import android.app.Activity;  import android.content.res.Resources;import android.graphics.Bitmap;  import android.graphics.Bitmap.Config;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Typeface;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageView;public class HelloWorldActivity extends Activity {  ImageView iv;      Button btn1,btn2,btn3;      Resources r;      @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_hello_world);                  iv=(ImageView)this.findViewById(R.id.ImageView01);          btn1=(Button)this.findViewById(R.id.Button01);          btn2=(Button)this.findViewById(R.id.Button02);          btn3=(Button)this.findViewById(R.id.Button03);            btn1.setOnClickListener(new ClickEvent());          btn2.setOnClickListener(new ClickEvent());          btn3.setOnClickListener(new ClickEvent());                    r = this.getResources();      }      class ClickEvent implements View.OnClickListener {            public void onClick(View v) {              if(v==btn1)//顯示資源圖片              {            //功能等效                  //iv.setBackgroundResource(R.drawable.fable5);//開啟資源圖片                  Bitmap bmp=BitmapFactory.decodeResource(r, R.drawable.fable5);//開啟資源圖片                  iv.setImageBitmap(bmp);  //顯示圖片            }              else if(v==btn2)//顯示並繪畫資源圖片              {                  Bitmap bmp=BitmapFactory.decodeResource(r, R.drawable.fable5);//唯讀,不能直接在bmp上畫                  Bitmap newb = Bitmap.createBitmap( 300, 300, Config.ARGB_8888 );//建立一個新的位元影像                                  Canvas canvasTemp = new Canvas( newb );//畫布,畫布,用newb的內容來畫在畫布上                canvasTemp.drawColor(Color.TRANSPARENT);//設定畫布的背景顏色為透明TRANSPARENT                                  Paint p = new Paint();//畫筆,哈哈,有點意思吧,又畫布又畫筆的                String familyName ="宋體";//使用宋體,可以使用非系統的字型,遊戲中很多字型是特殊的,需要放在assets/fonts/                Typeface font = Typeface.create(familyName,Typeface.BOLD);//加粗                p.setColor(Color.RED);  //畫筆顏色為紅色                p.setTypeface(font);  //設定字型                p.setTextSize(24);  //字型大小                canvasTemp.drawText("肥寶傳說之路",50,50,p); //在畫布上畫上幾個字                canvasTemp.drawBitmap(bmp, 50, 50, p);//在畫布上畫上剛剛讀出來的fable5                //上面的東西都是畫在畫布上的newb圖上面的。                iv.setImageBitmap(newb);  //顯示這個新的圖片            }              else if(v==btn3)//直接在Button上繪圖              {                  Bitmap newb = Bitmap.createBitmap( btn3.getWidth(), btn3.getHeight(), Config.ARGB_8888 ); //建立一個圖                 Canvas canvasTemp = new Canvas( newb );//把圖放在畫布上面                  canvasTemp.drawColor(Color.WHITE);//背景顏色是白色                  Paint p = new Paint();  //畫筆                String familyName = "宋體";  //使用宋體                Typeface font = Typeface.create(familyName, Typeface.BOLD);  //設定字型                p.setColor(Color.BLUE);  //藍色                p.setTypeface(font);  //設定畫筆的字型                p.setTextSize(24);  //字型的大小                canvasTemp.drawText("Android新手入門2016", 14, 24, p);  //寫幾個字,xy不要填太大,超過按鈕大小位置就找不到了                Drawable drawable = new BitmapDrawable( getApplicationContext().getResources(), newb); //其實這個看的不是很明白                 btn3.setBackgroundDrawable(drawable);  //把這個圖當做按鈕的背景            }          }      }  }

代碼稍後上傳。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.