Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将imageview的高度动态设置为父高度?_Android_Listview_Height_Imageview - Fatal编程技术网

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

Android 如何将imageview的高度动态设置为父高度?,android,listview,height,imageview,Android,Listview,Height,Imageview,我的应用程序中有一个列表视图。列表项的大小不同。 当我单击listitem中的按钮时,必须在该特定listitem上显示半透明图像。由于listitem的大小不同,我无法将imageview的高度设置为固定大小 我已将其设置为匹配父项,但问题是它仅获取listitem的初始高度,即imageview的高度小于listitem的高度。为了解决这个问题,我将imageview的高度设置为父高度(列表项布局)。尝试此操作后,上述问题已解决,但出现了另一个问题 当我滚动listview时,新问题就出现了

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

我已将其设置为匹配父项,但问题是它仅获取listitem的初始高度,即imageview的高度小于listitem的高度。为了解决这个问题,我将imageview的高度设置为父高度(列表项布局)。尝试此操作后,上述问题已解决,但出现了另一个问题

当我滚动listview时,新问题就出现了。当我单击列表项中的按钮时,它正确地显示了imageview,但在滚动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;

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

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),如果imageview是列表行项目的一部分,当您向上向下列表时,它将循环使用,因此您需要再次管理imageview的高度。并显示getView方法。此代码是getView()方法的一部分。实际上,该方法很大。这就是为什么我在这里不发布完整方法