ImageButton拉伸src来填充

时间:2014-06-20 10:29:12

标签: android android-imagebutton

这个问题经常出现,但是在我发现的所有例子中,图像src都是在XML中定义的。例如android:src="..."

我的代码没有具体说明src直到活动,使用ImageButton.setImageResource(),因为它是一个按钮,执行播放/停止

如果稍后定义src,我如何用src填充ImageButton?

我尝试了ImageButton.setScaleType="fitXY",但sdk并不喜欢使用字符串......

enter image description here

更新:尝试使用下面建议后,问题仍然存在。这里有更多解释来帮助

<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 个答案:

答案 0 :(得分:2)

使用ScaleType.CENTER_CROP而不是

播放器.setScaleType(ImageView.ScaleType.CENTER_CROP);

似乎CENTER_CROP与fit_xy一样工作。 但是,它不确定为什么会这样做..

答案 1 :(得分:1)

请尝试以下代码以编程方式设置ScaleType

ImageButton object".setScaleType(ScaleType.FIT_XY)

“ImageButton对象”应该是ImageButton类的对象  (您可能在xml中定义)。

答案 2 :(得分:0)

这样做

ImageButton object.setScaleType(ScaleType.FIT_XY)

在代码中使用ScaleType.FIT_XY而不是fitXY

答案 3 :(得分:0)

ImageButton.setScaleType="fitXY"

是的,这不起作用,因为你必须使用下面的代码正确使用它也应该setAdjustViewBounds为true。这样:

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

这肯定会奏效!