前提・実現したいこと
javaでアンドロイドアプリを作っています。
やりたいことはどの端末にも合うように画像の大きさ、座標の動く量など、比率を同じにしたいです。
ここを参考にしました
言葉の意味は大体理解できたと思います。
ただそれを実装しろと言われたらお手上げでした。
今回の場合x-dpiやxx-dpiに画像を入れる、layoutファイルを使って作る等はなしで、単純にプログラミングで計算してやり遂げたいです。
試したこと
ある一つの実機のディスプレイサイズを基準とし、ほかのディスプレイサイズと比較しその倍率を画像や座標に掛け算するという方法をとりました。
しかしこれだと必要以上に画像が小さくなったり、大きくなったりします。
dpの世界ならそれが実現可能とどのサイトを見ても書いてあるのですが、実際どうすればいいのでしょうか?
要はxmlでmatch_parentするとどの画面でもフィットしてくれるじゃないですか。
それをプログラムで実現したいです。
float dp; public Graphics(SerfaceHolder holder, Activity activty){ dp = activity.getResources().getDisplayMetrics().density; } //ビットマップの描画 public void drawBitmap(Bitmap bitmap, float x, float y, int revers) { Matrix matrix = new Matrix(); if (canvas == null) return; while (bitmap != null) { float w = bitmap.getWidth(); float h = bitmap.getHeight(); float sx = x; if (revers == 1) { sx = x; } if (revers == -1) { sx = x + w; } matrix.setScale(revers * (dp), 1 * (dp)); matrix.postTranslate( sx * (dp), y * (dp)); canvas.drawBitmap(bitmap, matrix, paint); break; } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/13 02:47
2018/04/13 04:35
2018/04/13 06:16
2018/04/13 06:32 編集
2018/04/14 00:28
2018/04/14 00:30
2018/04/14 04:49 編集
2018/04/15 01:52