怎麼樣去傢伙。我現在要做的就是增加屏幕上的文字,我現在在屏幕上。我在畫布上有一個位圖,每次點擊時都會增加數字。我將這個變量打印到logcat中,它確實是遞增的,但它並沒有被繪製在屏幕上。如何增加Android應用程序中的畫布文本?
這裏是什麼,我現在有更好的主意圖片:
這裏是我的繪畫課:
package com.example.touchperson;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.Log;
import android.view.View;
public class Drawing extends View {
Bitmap robot;
Rect rec;
Paint text;
static int touchCount = 0;
public Drawing(Context context) {
super(context);
robot = BitmapFactory.decodeResource(getResources(), R.drawable.character);
Log.i("Robot coord", Integer.toString(robot.getHeight()));;
rec = new Rect(0, 0, 200 , 200);
text = new Paint();
text.setColor(Color.CYAN);
text.setTextSize(100);
}
public boolean contains(int x, int y){
if(rec.contains(x, y)){
return true;
}
else{
return false;
}
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
canvas.drawBitmap(robot, rec, rec, null);
canvas.drawText(Integer.toString(touchCount) ,(int) (canvas.getWidth()/2) , (int) (canvas.getHeight()/2), text);
}
}
這是我的主要活動類:
package com.example.touchperson;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
public class MainActivity extends Activity implements OnTouchListener {
Drawing view;
Drawing count;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
view = new Drawing(this);
view.setOnTouchListener(this);
setContentView(view);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
if(view.contains((int) event.getX(), (int) event.getY())){
Drawing.touchCount++;
count = new Drawing(this);
Log.i("touched", Integer.toString(Drawing.touchCount));
}
break;
}
return false;
}
}
任何幫助將非常感激。
你已經用'setContentView(...)'用''Drawing'的'view'實例,但是在'onTouch(...)'監聽器中使用'count = new Drawing(this);'。是什麼讓你覺得會更新屏幕? – Squonk
好點。我只是想盡一切辦法。對如何更新視圖有任何建議嗎? – recheej