Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 多媒體開發學習之制作一個簡單的畫板

Android 多媒體開發學習之制作一個簡單的畫板

編輯:關於Android編程

一個簡單的畫板,可以繪制,可以選擇顏色,可以保存。 當然了這種工具一般常用的通訊軟件都是會有的,比如QQ, 飛秋等

其中我們必須監聽手指的觸摸事件,手指的觸摸事件就分為3種: 按下,抬起,移動。 通常我們只需要關系按下的時候,然後就是整個手指滑動的過程。然後將手指滑動的過程繪制為不同的直線。當然也可以設置繪制的顏色,繪制直線的寬度等。

 

 

public class MainActivity extends Activity {

	private int TouchX;
	private int TouchY;
	private Paint paint;
	private Canvas canvas;
	Bitmap bitmapCopy;
	ImageView lView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //1: 先創建一個畫板的背景圖片,這時候這圖片需要修改,就需要創建該圖片的副本
        Bitmap bitmapSrc = BitmapFactory.decodeResource(getResources(), R.drawable.bg);
        bitmapCopy = Bitmap.createBitmap(bitmapSrc.getWidth(), bitmapSrc.getHeight(), bitmapSrc.getConfig());
        
        paint = new Paint();
        canvas = new Canvas(bitmapCopy);
        canvas.drawBitmap(bitmapSrc, new Matrix(), paint);
        
        lView = (ImageView) findViewById(R.id.lv);
        lView.setImageBitmap(bitmapCopy);
        
        //2: 就需要監聽手指的觸摸事件
        lView.setOnTouchListener(new OnTouchListener() {
			
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				//手指觸摸分三種: 按下, 抬起,移動
				int action = event.getAction();
				switch (action) {
				case MotionEvent.ACTION_DOWN:
					//首先是按下,當按下時,需要記錄第一次按下的位置
					TouchX = (int) event.getX();
					TouchY = (int) event.getY();
					break;
				case MotionEvent.ACTION_MOVE:
					//只要每次移動,都會產生移動事件的,得到當前的坐標
					int x = (int)event.getX();
					int y = (int)event.getY();
					//畫線
					canvas.drawLine(TouchX, TouchY, x, y, paint);
					//更改下次繪制的起始坐標
					TouchX = x;
					TouchY = y;
					lView.setImageBitmap(bitmapCopy);
					break;
				case MotionEvent.ACTION_UP:
	
					break;
				
				}
				//true:告訴系統,這個觸摸事件由我來處理
				//false:告訴系統,這個觸摸事件我不處理,這時系統會把觸摸事件傳遞給imageview的父節點
				return true;
			}
		});
    
    }
    
    //設置畫筆的顏色為紅色
    public void red(View v)
    {
    	paint.setColor(Color.RED);
    }

    //設置畫筆的顏色為綠色
    public void green(View v)
    {
    	paint.setColor(Color.GREEN);
    }
    
    //設置刷子的寬度
    public void brush(View v)
    {
    	paint.setStrokeWidth(7);
    }
    
    //保存
    public void save(View v)
    {
    	File file = new File(sdcard/tupian.png);
    	
    	FileOutputStream fStream = null;
    	try {
			fStream = new FileOutputStream(file);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	
    	//保存為png格式,100代表最高質量
    	bitmapCopy.compress(CompressFormat.PNG, 100, fStream);
    }
}

 

 

以上就是一個簡單的畫板,可以繪制簡單的圖片,可以實現保存。

\
 

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved