編輯:關於Android編程
今天完成一個畫畫板。
首先來個布局:
看一下主活動代碼:
package com.itydl.paintban;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView iv;
int startX;
int startY;
private Canvas canvas;
private Paint paint;
private Bitmap bmCopy;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//加載畫畫板的背景圖
Bitmap bmSrc = BitmapFactory.decodeResource(getResources(), R.drawable.bg);
bmCopy = Bitmap.createBitmap(bmSrc.getWidth(), bmSrc.getHeight(), bmSrc.getConfig());
paint = new Paint();
canvas = new Canvas(bmCopy);
//繪制
canvas.drawBitmap(bmSrc, new Matrix(), paint);
iv = (ImageView) findViewById(R.id.iv);
iv.setImageBitmap(bmCopy);
//設置觸摸偵聽
iv.setOnTouchListener(new OnTouchListener() {
//觸摸屏幕時,觸摸事件產生時,此方法調用
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
//用戶手指摸到屏幕
case MotionEvent.ACTION_DOWN:
startX = (int) event.getX();
startY = (int) event.getY();
break;
//用戶手指正在滑動
case MotionEvent.ACTION_MOVE:
int x = (int) event.getX();
int y = (int) event.getY();
canvas.drawLine(startX, startY, x, y, paint);
//每次繪制完畢之後,本次繪制的結束坐標變成下一次繪制的初始坐標
startX = x;
startY = y;
iv.setImageBitmap(bmCopy);
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/dazuo.png");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
bmCopy.compress(CompressFormat.PNG, 100, fos);
//發送sd卡就緒廣播
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MEDIA_MOUNTED);
intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory()));
sendBroadcast(intent);
}
}

畫了個綠帽子,哈哈。
android視頻播放心得體會
android視頻播放主要是兩種方式1、系統封裝好的videoplayer,有前進、後退、暫停/播放、拉動最基本的功能,夠一般使用,操作辦法也很簡單,如果需要自定義程度高
android POI搜索,附近搜索,周邊搜索定位介紹
POI搜索有三種方式,根據范圍和檢索詞發起范圍檢索poiSearchInbounds,城市poi檢索poiSearchInCity,周邊檢索poiSearchNearBy
Android仿今日頭條滑動頁面導航效果
最近項目中用到了滑動頁面,也就是和目前市場上很火的今日頭條頁面滑動類似,在網上找了一下,大部分都是用ViewPager來實現的,剛開始我用的是ViewPager+View
Android - DatePicker顏色處理以及其他屬性介紹
相信很多碼友都碰到過這種情況,在一個界面放了一個datepicker.但是在5.0以上的手機上顏色顯示的效果不怎麼好。就像下圖這樣,顏色處理的不怎麼好。一開始百度找解決辦