1

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

我已将其设置为匹配父项,但问题是它仅采用列表项的初始高度,即 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;
4

1 回答 1

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)

于 2012-10-11T08:05:25.527 回答