0

この質問は非常に頻繁に出てきますが、私が見つけたすべての例で、画像 src は XML で定義されています。例えばandroid:src="..."

私のコードは、アクティビティまでsrcを特定せずImageButton.setImageResource()、単一のボタンを使用して再生/停止を実行します

src が後で定義された場合、ImageButton に src を入力するにはどうすればよいですか?

試してみましImageButton.setScaleType="fitXY"たが、sdkは文字列を使用するのが好きではありません...

ここに画像の説明を入力

更新: 以下に提案されている方法を使用しようとしても、問題は引き続き発生します。ここに役立つ説明があります

<ImageButton
    android:id="@+id/imgStart"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    />


public class MainActivity extends Activity{

private ImageButton player;

protected void onCreate(){
player = (ImageButton) findViewById(R.id.imgStart);

...

if(isPlaying){
player.setImageResource(bitmap image);
}
else{
player.setImageResource(different bitmap image);
}
...
}
4

4 に答える 4

2

代わりに ScaleType.CENTER_CROP を使用してください

プレーヤー .setScaleType(ImageView.ScaleType.CENTER_CROP);

CENTER_CROP は fit_xy として動作するようです。しかし、なぜそうなるのかはわかりません..

于 2016-09-08T15:58:01.967 に答える
1

ScaleTypeプログラムで設定するには、以下のコードを試してください

ImageButton object".setScaleType(ScaleType.FIT_XY)

「ImageButton オブジェクト」は、クラス ImageButton (おそらく xml で定義したもの) のオブジェクトである必要があります。

于 2014-06-20T10:31:42.560 に答える
0
ImageButton.setScaleType="fitXY"

はい、これは機能しません。以下のコードを使用して適切に使用する必要があるため、AdjustViewBounds を true に設定する必要があります。

player.setAdjustViewBounds(true);
player.setScaleType(ScaleType.FIT_XY);

これは間違いなくうまくいきます!

于 2014-06-20T11:26:10.337 に答える
0

こうすれば

ImageButton object.setScaleType(ScaleType.FIT_XY)

コードで fitXY の代わりに ScaleType.FIT_XY を使用します

于 2014-06-20T10:34:10.803 に答える