imageButton
のサイズを変更して画像を正確に合わせる方法を教えてもらえますか?これは私が試したコードですが、画像はAndroid:scaleType
を使用して特定した位置に配置されますが、imageButton
のサイズを小さくすることはできません。この問題の修正にご協力ください。私が試したコードは次のとおりです。
<ImageButton>
Android:id="@+id/Button01"
Android:scaleType="fitXY" // i have tried all the values for this attr
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:cropToPadding="false"
Android:paddingLeft="10dp"
Android:src="@drawable/eye"> // this is the image(eye)
</ImageButton>
ちょっと遅れましたが、今日は同じ質問がありましたが、「より遅く、決して良くない」ために私はそれをここで説明しました: http://www.anddev.org/tutorial_buttons_with_niceley_stretched_background-t4369.html
Android:background="@drawable/eye"
自動的に動作します。
Android:src="@drawable/eye"
ボタンの幅と高さ、画像のサイズ変更のすべての問題で使用したものでした...
プロパティ「src」で画像を設定しています
Android:src="@drawable/eye">
「background
」プロパティの代わりに「src
」プロパティを使用します。
Android:background="@drawable/eye"
お気に入り:
<ImageButton
Android:id="@+id/Button01"
Android:scaleType="fitXY"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:cropToPadding="false"
Android:paddingLeft="10dp"
Android:background="@drawable/eye"> // this is the image(eye)
</ImageButton>
おそらくプログラムでボタンのサイズを変更する必要があります。 onCreate()メソッドで明示的に画像をロードし、そこでボタンのサイズを変更する必要があります。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageButton myButton = (ImageButton) findViewById(R.id.button);
Bitmap image = BitmapFactory.decodeResource(R.drawable.eye);
myButton.setBitmap(image);
myButton.setMinimumWidth(image.getWidth());
myButton.setMinimumHeight(image.getHeight());
...
}
SetMinimumXの仕様に従って動作することは保証されていません(幅と高さはまだ親ビューに依存しているため)が、ほとんどすべての状況でうまく機能するはずです。
Src属性を使用して使用する必要はありません
間違った方法(画像がボタンに合わない)
Android:src="@drawable/myimage"
正しい方法は、バックグラウンド属性を使用することです
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerInParent="true"
Android:background="@drawable/skin" />
skinはxmlです
skin.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<!-- <item Android:drawable="@drawable/button_disabled" Android:state_enabled="false"/> -->
<item Android:drawable="@drawable/button_pressed" Android:state_pressed="true"/>
<!-- <item Android:drawable="@drawable/button_focused" Android:state_focused="true"/> -->
<item Android:drawable="@drawable/button_normal"/>
</selector>
button_pressed.pngおよびbutton_normal.pngを使用
これは、pressed、normal、disabled、focusedの4つの状態を持つスキンボタンの作成にも役立ちます。すべてのPNGのサイズを同じにしてください
次のようにlayout_widthとlayout_heightを指定しようとしましたか? wrap_contentで設定しているため、画像ボタンはソース画像の高さと幅のサイズに拡大します。
<blink>
<ImageButton>
Android:id="@+id/Button01"
Android:scaleType="fitXY"
Android:layout_width="80dip"
Android:layout_height="80dip"
Android:cropToPadding="false"
Android:paddingLeft="10dp"
Android:src="@drawable/eye">
</ImageButton>
</blink>
ScaleType centerInsideを使用してみてください。
ScaleTypesはEclipse Layout Designerで適切にレンダリングされないため、実行中のアプリでテストしてください。
背景を透明に設定することもできます。そのため、ボタンはアイコンに合うように見えます。
<ImageButton
Android:id="@+id/Button01"
Android:scaleType="fitcenter"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:cropToPadding="false"
Android:paddingLeft="10dp"
Android:background="@Android:color/transparent"
Android:src="@drawable/eye" />
あなたはすでにこの問題を解決したと思います、そして他の答えが示唆したように
Android:background="@drawable/eye"
利用可能です。でも私は〜がいい
Android:src="@drawable/eye"
Android:background="00000000" // transparent
(もちろん、以前のコードは画像を背景として設定し、他のコードは画像を画像として設定します)しかし、選択した答えによると、9パッチを意味していました。