带有setImageDrawable的ImageButton LayoutProblem

时间:2012-12-03 15:14:04

标签: android android-layout android-button android-image

我试图在运行时设置ImageButton的图像。它应该填满屏幕的宽度,并使用尽可能多的空间来正确缩放。

ImageButton声明如下:

    <ImageButton
        android:id="@+id/map_plan_topview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:onClick="onMapImageClicked"
        android:background="#0000"
        android:scaleType="fitXY" />

现在我尝试使用以下方式设置图片:

        ImageButton topView = (ImageButton) findViewById(R.id.map_plan_topview);
        Drawable d = Drawable.createFromPath(path);
        topView.setImageDrawable(d);

图像宽度使用fill_parent进行缩放,但未在高度上正确拉伸。 如果我使用 topView.setImageResource(R.drawable.button_where_citymap);相反,一切正常,但我确实想在运行时从文件路径设置源。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

fitXY在不考虑比例的情况下拉伸图像。如果比例很重要,请使用center_cropcenter_inside

您也可以在代码中设置ScaleType

ImageButton topView = (ImageButton) findViewById(R.id.map_plan_topview);
Drawable d = Drawable.createFromPath(path);
topView.setScaleType(ScaleType.CENTER_CROP);
topView.setImageDrawable(d);

答案 1 :(得分:0)

您应该使用“SetImageResource”代替“setImage Drawable”......!