我一直在開發繪圖應用程序,我有一些問題:由手指繪製平均已經做了,但現在我需要做什麼,允許用戶編寫一個通用文本標籤上的View
。所以,請看我的代碼:繪製簡單的文本上查看
public class PainterView extends View implements DrawingListener {
private Painter painter;
private Bitmap bitmap;
private Paint bitmapPaint;
private Path path;
private Paint paint;
public PainterView(Context context, Painter painter) {
super(context);
this.painter=painter;
this.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
float x = event.getX();
float y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
PainterView.this.painter.touchStart(x, y);
break;
case MotionEvent.ACTION_MOVE:
PainterView.this.painter.touchMove(x, y);
break;
case MotionEvent.ACTION_UP:
PainterView.this.painter.touchUp();
break;
}
return true;
}
});
this.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.e("event", "click");
}
});
this.setOnLongClickListener(new OnLongClickListener() {
public boolean onLongClick(View v) {
Log.e("event", "long");
return true;
}
});
}
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
}
protected void onDraw(Canvas canvas) {
if (bitmap!=null) {
canvas.drawBitmap(bitmap, 0, 0, bitmapPaint);
canvas.drawPath(path, paint);
}
}
public void onPictureUpdate(Bitmap bitmap, Paint bitmapPaint, Path path, Paint paint) {
this.bitmap=bitmap;
this.bitmapPaint=bitmapPaint;
this.path=path;
this.paint=paint;
invalidate();
}
public void setPainter(Painter painter) {
this.painter=painter;
}
}
這是代碼繪圖;繪圖的過程在Painter
類。所以,現在我需要讓用戶寫一個簡單的文本。我想,我可以使用長點擊做到這一點 - 用戶做了長按,鍵盤被打開,用戶可以輸入文本。但它不起作用!我的日誌中沒有看到任何字符串。
請告訴我建議我的問題還是一些想法如何,我可以實現我需要什麼。
[嘗試這一個](http://www.2shared.com/file/QMsoV6OR/WriteOnScreen.html) – Praveenkumar