Android 如何将imageview的高度动态设置为父高度?
我的应用程序中有一个列表视图。列表项的大小不同。 当我单击listitem中的按钮时,必须在该特定listitem上显示半透明图像。由于listitem的大小不同,我无法将imageview的高度设置为固定大小 我已将其设置为匹配父项,但问题是它仅获取listitem的初始高度,即imageview的高度小于listitem的高度。为了解决这个问题,我将imageview的高度设置为父高度(列表项布局)。尝试此操作后,上述问题已解决,但出现了另一个问题 当我滚动listview时,新问题就出现了。当我单击列表项中的按钮时,它正确地显示了imageview,但在滚动imageview的大小后,它会发生变化。我找不到原因 下面是我的代码。这是来自我的适配器类Android 如何将imageview的高度动态设置为父高度?,android,listview,height,imageview,Android,Listview,Height,Imageview,我的应用程序中有一个列表视图。列表项的大小不同。 当我单击listitem中的按钮时,必须在该特定listitem上显示半透明图像。由于listitem的大小不同,我无法将imageview的高度设置为固定大小 我已将其设置为匹配父项,但问题是它仅获取listitem的初始高度,即imageview的高度小于listitem的高度。为了解决这个问题,我将imageview的高度设置为父高度(列表项布局)。尝试此操作后,上述问题已解决,但出现了另一个问题 当我滚动listview时,新问题就出现了
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()方法的一部分。实际上,该方法很大。这就是为什么我在这里不发布完整方法