0
나는 Galaxy Nexus 화면 중앙에 원을 그리려하고 있으며 무엇보다 학습 경험이 있습니다. 이렇게하려면 다음 코드 줄을 사용하고 있습니다.중심 축 원을 그리는 Galaxy Nexus
canvas.drawCircle(canvas.getWidth()/2, canvas.getHeight()/2, 40, paint);
문제는 화면 오른쪽 하단에있는 원의 1/4 만 볼 수 있다는 것입니다. 내 Galaxy SII에서 이와 똑같은 코드를 시도했으며 화면 중앙에 원을 그립니다. 나는 getwidth와 getheight의 값을 확인했는데 640x1052를보고합니다. 그러나 화면에서 오른쪽 아래의 픽셀의 좌표는 화면 상 버튼을 제외한 약 450만큼 320입니다.
무슨 일입니까? 앱의 일부가 해상도 또는 다른 것을 설정할 수 있습니까?
아래에 전체 활동을 포함 시켰습니다.
package com.helloworld;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
public class ShapeTest extends Activity {
class RenderView extends View {
Paint paint;
public RenderView(Context context) {
super(context);
paint = new Paint();
}
protected void onDraw(Canvas canvas) {
Context context = getApplicationContext();
canvas.drawRGB(255, 255, 255);
paint.setColor(Color.RED);
canvas.drawLine(0, 0, this.getWidth()-1, this.getHeight()-1, paint);
paint.setStyle(Style.STROKE);
paint.setColor(0xff00ff00);
canvas.drawCircle(canvas.getWidth()/2, canvas.getHeight()/2, 40, paint);
paint.setStyle(Style.FILL);
paint.setColor(0x770000ff);
canvas.drawRect(100, 100, 200, 200, paint);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(new RenderView(this));
}
}
감사합니다. 그렇지 않습니다. 그걸 수정 한 것 같습니다. Galaxy Nexus가 아닌 SII에서 작동하는 이유는 무엇입니까? – DNN