調子はどうだい。私が今やろうとしているのは、現在画面に表示されているこのキャンバス テキストをインクリメントすることです。キャンバスにビットマップがあり、クリックするたびに数値が増加します。変数を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;
}
}
どんな助けでも大歓迎です。