ホットスポットが 10 インチ タブレットで動作するようにマップされているサイズ 1024x768 の画像がありますが、kindle fire でアプリケーションを実行すると、画像サイズが縮小され、ホットスポットが機能しません。小さい画像に座標をマップする式はありますか?より大きな画像でマッピングするには?
1 に答える
1
正確な回答を提供するのに十分な詳細を提供していません。
- 画像を表示するために何を使用していますか?イメージビュー?
- 縦横比を維持するために、画像は拡大/縮小されていますか?
- タッチリスナーで X と Y を取得していますか?
- ホット スポットは、接触した 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 に答える