アンドロイド:ImageView または ImageButton で画像が拡大縮小されないようにするにはどうすればよいですか?
-
18-09-2019 - |
質問
ビューまたはボタンが「fill_parent」または「weight」を使用して拡大された場合、ImageView または ImageButton でビットマップが自動的に拡大縮小されないようにするにはどうすればよいですか?
これは、たとえば、画面の上部にボタンが等間隔に配置された 4 つのボタンのツールバーを作成する場合に便利ですが、scaleType="center" を使用してもボタン内の画像が引き伸ばされ続けます。ドキュメントに従ってスケーリングしますが、実際はそうではありません。
ご洞察をお待ちしております。
ありがとう、
解決
私はアンドロイドを使用している場合ことを発見しました。 ビューに画像を配置するSRC:
私はアンドロイドを使用してみました。画像は縮小しませんでしたが、私は、画像が表示の大きさに比べて中央に得ることができませんでした。
だから私はそれが自分の相対的なレイアウトだ全体のボタンを作ってみました、これは私が使用したものです。
<RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<ImageButton android:id="@+id/ImageButton01"
android:layout_height="fill_parent"
android:layout_width="fill_parent"></ImageButton>
<ImageView android:id="@+id/ImageView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/cardback1"
android:layout_centerInParent="true"></ImageView>
</RelativeLayout>
のImageButtonは、バックグラウンドであり、常にレイアウトと同じサイズになります。 ImageViewのは、しかし、常にRelativeLayoutの中心に滞在し、拡張できません。 この方法では、RelativeLayout自体が成長し、移動し、ボタンの上の画像は、常に同じサイズのままになりますが、ボタンが成長することができます。レイアウト画像自体よりも小さくなると画像しかし縮小する。
私はそれがあなたが探していたものだと思います。そこにこれを行うには良い方法であるが、これは私が今を考え出すことができるすべてであることがあります。
他のヒント
ドローアブルを変更し、より大きな透明な背景を適用するだけです。HDPI のドローアブルが 41*48 ピクセルの icon.png であるとします。透明な背景を持つ 60*60 ピクセルの新しい画像を作成し、前の icon.png をコピーして貼り付け、同じ名前で保存します。こうすることで、レイアウトを変更する必要がなくなります。
次に、 不透明 アンドロイド:背景:
<ImageButton android:id="@+id/widget_open"
android:src="@drawable/icon_widget_arrow_up"
android:background="#ff777777"
android:layout_height="wrap_content"
android:layout_width="wrap_content"></ImageButton>
以前のドローアブルと新しいドローアブルを適用します アンドロイド:ソース 、ImageButton 領域が明確に表示されるはずです。
ちなみに、私はアプリを互換モードで実行しています。
、あなたは互換モードでアプリケーションを実行していないことを確認してください(複数の密度をサポートすることなく、1.5 / 1.6のAndroidをターゲットとあなたは、Android 2.0でアプリを実行する場合、インスタンスのために。)