android畫板
① 安卓有什麼好用的畫板app
SketchBook,這軟體我用著不錯,如果你是三喪的note的話,用著更是爽上加爽!!
② android怎麼在畫板是畫(直線,圓,矩形)
③ Android 畫板canvas如何畫五角星
這個應該不難吧 用path path.moveTo(xx,xx);
path.lineTo(xx,xx);
算下這個五角星個點坐標就行了。
④ Android畫板縮放重繪比較卡頓,有沒有什麼辦法可以優化
雙緩沖區,
不行就opengles
當然,一般簡單圖形也不至於卡頓,你看看你代碼有沒有問題吧.
⑤ Android開發在畫板上畫些東西,甩一甩手機實現畫板上的東西變成潑墨效果。
畫畫板實現起來其實很簡單,我們只需要利用android給我們提供的Canvas類來操作就可以實現簡單的畫畫功能
直接看代碼,注釋都寫清楚了
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
public class MainActivity extends Activity {
private ImageView iv;
private Bitmap baseBitmap;
private Canvas canvas;
private Paint paint;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.iv = (ImageView) this.findViewById(R.id.iv);
// 創建一張空白圖片
baseBitmap = Bitmap.createBitmap(480, 640, Bitmap.Config.ARGB_8888);
// 創建一張畫布
canvas = new Canvas(baseBitmap);
// 畫布背景為灰色
canvas.drawColor(Color.GRAY);
// 創建畫筆
paint = new Paint();
// 畫筆顏色為紅色
paint.setColor(Color.RED);
// 寬度5個像素
paint.setStrokeWidth(5);
// 先將灰色背景畫上
canvas.drawBitmap(baseBitmap, new Matrix(), paint);
iv.setImageBitmap(baseBitmap);
iv.setOnTouchListener(new OnTouchListener() {
int startX;
int startY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 獲取手按下時的坐標
startX = (int) event.getX();
startY = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
// 獲取手移動後的坐標
int stopX = (int) event.getX();
int stopY = (int) event.getY();
// 在開始和結束坐標間畫一條線
canvas.drawLine(startX, startY, stopX, stopY, paint);
// 實時更新開始坐標
startX = (int) event.getX();
startY = (int) event.getY();
iv.setImageBitmap(baseBitmap);
break;
}
return true;
}
});
}
public void save(View view) {
try {
File file = new File(Environment.getExternalStorageDirectory(),
System.currentTimeMillis() + ".jpg");
OutputStream stream = new FileOutputStream(file);
baseBitmap.compress(CompressFormat.JPEG, 100, stream);
stream.close();
// 模擬一個廣播,通知系統sdcard被掛載
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MEDIA_MOUNTED);
intent.setData(Uri.fromFile(Environment
.getExternalStorageDirectory()));
sendBroadcast(intent);
Toast.makeText(this, "保存圖片成功", 0).show();
} catch (Exception e) {
Toast.makeText(this, "保存圖片失敗", 0).show();
e.printStackTrace();
}
}
}
簡單的布局文件
?
1
2
3
4
5
6
7
8
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity">
<button android:id="@+id/button1" android:onclick="save" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignparentbottom="true" android:text="保存圖片">
<imageview android:layout_above="@id/but
http://www.2cto.com/kf/201401/273814.html
⑥ android 中Canvas畫板清除問題
調用那個View的invalidate();方法 那個View就會重繪