0

ホットスポットが 10 インチ タブレットで動作するようにマップされているサイズ 1024x768 の画像がありますが、kindle fire でアプリケーションを実行すると、画像サイズが縮小され、ホットスポットが機能しません。小さい画像に座標をマップする式はありますか?より大きな画像でマッピングするには?

4

1 に答える 1

1

正確な回答を提供するのに十分な詳細を提供していません。

  1. 画像を表示するために何を使用していますか?イメージビュー?
  2. 縦横比を維持するために、画像は拡大/縮小されていますか?
  3. タッチリスナーで X と Y を取得していますか?
  4. ホット スポットは、接触した X、Y をホット スポットの定義と比較する何らかのヒット テスターで実装されていますか?

ImageView とタッチ リスナーが X と Y を取得すると仮定すると、画像が表示される解像度に合わせてホット スポットをスケーリングする必要があります。ImageView クラスを拡張し、onMeasure() コールバックをオーバーライドすることで、最近これを行いました。onMeasure で、画像が横向きか縦向きかを判断し、画像のネイティブ サイズ (ホット スポットを指定したサイズ) と表示サイズの間の倍率を計算します。

このようなもの:

 if (this.getWidth() > this.getHeight()) {
     scaleFactor = ((float)this.getWidth() / (float)this.originalBitmapWidth);
 } else {
     scaleFactor = ((float)this.getHeight() / (float)this.originalBitmapHeight);
 }

 for (Hotspot hotspot : hotspots){
     hotspot.setScale(scaleFactor);
 }
于 2012-04-23T08:18:58.677 に答える