欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

Android新手入门2016(16)--画图

来源: 开发者 投稿于  被查看 14391 次 评论:184

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);  //把这个图当做按钮的背景
            }  
        }  
    }  
}

代码稍后上传。
\\

相关文章

    暂无相关文章

用户评论