0
私はギャラクシーネクサスの画面中央に円を描こうとしています。私はこのコード行を使用していることを行うには:ギャラクシーネクサス、中心の円を描く
canvas.drawCircle(canvas.getWidth()/2, canvas.getHeight()/2, 40, paint);
問題は、私は唯一、画面の右下に円の四半期を見ることができます。私は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