2016-05-26 6 views
-1

キャンバスを使ってチックタックのゲームUIを描きます。私はそれをSamsung Mobileで実行するとこのUIは完璧ですが、Motorolaで実行すると画面サイズの問題が発生します。画面サイズの問題を解決する方法は?

package com.example.asad.tictoe; 

import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.graphics.Rect; 
import android.nfc.Tag; 
import android.util.Log; 
import android.view.MotionEvent; 
import android.view.View; 
import android.widget.Toast; 

/** 
* Created by asad on 5/25/16. 
*/ 
public class caanvas extends View { 
    ; 

    public caanvas(Context context) { 
     super(context); 

    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     Paint paint = new Paint(); 
     paint.setColor(Color.LTGRAY); 
     paint.setStrokeWidth(10); 
     canvas.drawLine(250, 300, 250, 1000, paint); 
     canvas.drawLine(480, 300, 480, 1000, paint); 
     canvas.drawLine(40, 520, 695, 520, paint); 
     canvas.drawLine(40, 785, 695, 785, paint); 

    } 

    @Override 
    public boolean onTouchEvent(MotionEvent ev) { 
     float x = ev.getX(); 
     float y = ev.getY(); 

     return true; 
    } 
} 

答えて

1

あなたがこれを使用して画面サイズを取る必要がありますので、「アプリケーションコードでハードコード化されたピクセル値を使用しないでください」ベストプラクティスのセクションで述べていますように、複数の画面をサポートに関するガイドがあります。

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 

int h = metrics.heightPixels; 
int w = metrics.widthPixels; 

次に、キャンバスを描画するのは画面のサイズによって異なります。あなたは

int h = getContext().getResources().getDisplayMetrics().heightPixels 
int w = getContext().getResources().getDisplayMetrics().widthPixels 

https://developer.android.com/guide/practices/screens_support.html

を使用することができますので、あなたの場合は

あなたはViewクラスであります

関連する問題