如何动态设置imageview的高度为父高?

时间:2012-05-17 10:16:19

标签: android listview height imageview

我的应用中有一个列表视图。列表项的大小不同。 当我点击listitem中的按钮时,必须在该特定列表项上显示半透明图像。由于listitem的大小不同,我无法将imageview的高度设置为固定大小。

我已将其设置为匹配父级,但问题是它仅占用列表项的初始高度,即imageview的高度小于listitem高度。为了解决这个问题,我将imageview的高度设置为父高(列表项布局)。在尝试这个之后,上述问题得到解决,但又出现了另一个问题。

当我滚动列表视图时,新问题即将来临。当我单击列表项中的按钮时,它正确显示图像视图,但在滚动图像视图的大小后,它会发生变化。我找不到原因。

以下是我的代码。这是我的适配器类。

        holder.parentLayout.setTag(R.id.viewPos,Integer.valueOf(position));
        holder.fadeView.setTag(R.id.viewPos, Integer.valueOf(position));

        int height=holder.parentLayout.getMeasuredHeight();
        holder.fadeView.getLayoutParams().height=height;

1 个答案:

答案 0 :(得分:0)

您必须使用以下方法更改图像大小 在此方法中,根据您的高度和宽度更改位图大小

public Bitmap getResizedBitmap(Bitmap bm, double newHeight, double newWidth) 
{
        int width = bm.getWidth();
        int height = bm.getHeight();

        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;

        Matrix matrix = new Matrix();
        matrix.postScale(scaleWidth, scaleHeight);

        Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height,matrix, false);

        return resizedBitmap;
}

在listview上的imageview中设置位图(resizedBitmap)