안녕하세요. 내가 지금하고있는 일은 캔버스 텍스트를 화면에 올리는 것입니다. 클릭 할 때마다 번호를 증가시켜야하는 캔버스에 비트 맵이 있습니다. 변수를 logcat에 인쇄했는데 실제로 증가하지만 화면에 그려지지 않습니다.Android 앱에서 캔버스 텍스트를 늘리는 방법은 무엇입니까?
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;
}
}
:
가 여기 내 주요 활동 클래스의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);
}
}
:
여기 내 드로잉 클래스의 : 여기
내가 더 좋은 생각이 지금 무슨의 사진입니다 어떤 도움이라도 대단히 감사 할 것입니다.
'setContentView (...) '로'Drawing'의'view' 인스턴스를 사용했지만'onTouch (...)'리스너에서는'count = new Drawing (this);'을 사용합니다. 그게 화면을 업데이 트한다고 생각하게 만드는 이유는 무엇입니까? – Squonk
좋은 지적. 내가 할 수있는 일을하는 중이 었어. 보기를 업데이트하는 방법에 대한 제안 사항이 있습니까? – recheej