0
異なる画面サイズと密度を持つ2つの異なるデバイスに画像があります。2つの異なるデバイス(同じ画面密度)で同じ画像に同じ円を描く
キャンバスを使用して、デバイスAのイメージに円を描き、デバイスBに中心座標を送信し、同じイメージが異なるサイズであっても同じ位置に円を描画します。
私は何のx座標送信する前に、デバイスA上で行うことは以下の通りです:
float density = getResources().getDisplayMetrics().density;
int width = getWidth();
float inchesLength = width/density;
float scaledXCenter = xCenter/inchesLength;
私はy座標のために同じことを行います。デバイスBで
、私は同じパラメータを取得し、受信したinchesLenght座標掛け:
float density = getResources().getDisplayMetrics().density;
int width = getWidth();
float inchesLength = width/density;
float restoredXCenter = scaledXCenter * inchesLength;
私はのAVDでこれをテストしています。 小さなデバイス(デバイスA)で、同じイメージが完全に表示されているが、より小さなスペースを占めていることがはっきり分かる場合でも、各AVDの画面密度は1です。
実際のデバイスで作業する場合、このアプローチは有効でしょうか?
もっと良い方法がありますか?