怎么样啊各位。我现在要做的是增加我现在在屏幕上的这个画布文本。我在画布上有一个位图,每次单击它时都会增加数字。我将变量打印到 logcat 中,它确实在增加,但没有在屏幕上绘制。
这是我现在拥有的更好主意的图片:
这是我的绘画课:
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;
}
}
任何帮助将非常感激。