はじめに

画像表示で、xperiaのみ画像がうまく反映していないというバグがあり、調べていたら原因がわかりましたので、忘れないようにメモしておきます。

Xperiaバグについて

TextViewのbackgroud画像にデフォルト画像を指定し、コード上でbackground画像を別の画像に再指定を行うと、
xperiaのみが、別の画像に変更しても反映されず、常にデフォルト画像が表示されます。
xperia以外の場合は、変更画像が反映されて表示されるので、xperiaの機種依存バグになります。
ただ、TextViewではなく画像は通常ImageViewなので、通常こんな事象になることはないはずなんですね。
もし画像と文字をどちらも使いたい場合は、ImageViewとTextViewを組み合わせて使うのが良いです。

xperia機種依存バグ詳細

<TextView
	android:id="@+id/hogehoge"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:background="@drawable/hogehoge"
	/>

コード上でTextViewのインスタンスを取得し、setBackgroundメソッド、setBackgroundResourceメソッドなどで画像を変更しても反映されずに、デフォルトのhogehoge画像が表示されていました。
このときに別機種でgalaxy,htcは変更した画像に変更されていました。

バグ解決策

もちろん、ImageViewとTextViewに分けたら直りますが、応急策とするようなら、下記レイアウトのように、bacground指定を外してあげると設定した画像が反映されるようになります。

<TextView
	android:id="@+id/hogehoge"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	/>

その他xperiの機種依存バグ

ネット検索で探すとxperiaの場合にcssのbackground-sizeが効かないなど
他にもバグが潜んでいるようです。
http://creator.cotapon.org/articles/css/css3/android%E7%AB%AF%E6%9C%AB%E3%81%A7%E3%81%AEbackground-size%E3%81%A7%E3%83%8F%E3%83%9E%E3%81%A3%E3%81%9F

xperiaには画像周りでバグがこのほかにもある可能性が高いため、試験端末にはxperiaもあると良いかもしれませんね。

その他おすすめの備忘録

Tagged with:
 

コメントを残す