ImageView不遵守CardView的大小

时间:2019-11-19 01:10:31

标签: kotlin cardview

我正在尝试制作某种图库应用。我想在GridLayout的ScrollView内显示图像,所以我使用CardView来实现,它看起来像这样:

CardView without images

但是,当我将ImageView放入每个CardView中时,CardView会展开并填充整个ScrollView。这是预览:

CardView with ImageView inside

CardView是通过编程创建的。这是代码

    fun CreateCardView(ItemCount: Int){
    for (i in 1 until ItemCount){

        /////////////////////CARD VIEW//////////////////////////////
        val card_view = CardView(this)
        card_view.radius = 8F
        card_view.setContentPadding(8,8,8,8)
        card_view.setCardBackgroundColor(Color.LTGRAY)
        card_view.cardElevation = 8F
        val param = GridLayout.LayoutParams()
        param.rowSpec = GridLayout.spec(GridLayout.UNDEFINED, 1f)
        param.columnSpec = GridLayout.spec(GridLayout.UNDEFINED, 1f)
        card_view.layoutParams = param
        val param2 = card_view.layoutParams as GridLayout.LayoutParams
        param2.setMargins(10,10,10,10)
        card_view.layoutParams = param2
        subLayoutGrid?.addView(card_view)
        ////////////////////////END//////////////////////////////////////

        ///////////////////////IMAGEVIEW////////////////////////////////
        val img = ImageView(this)
        val imageparams = WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT
        )
        img.layoutParams = imageparams
        img.scaleType = ImageView.ScaleType.CENTER_CROP
        img.setImageResource(R.drawable.animaleight)
        card_view.addView(img)
        ////////////////////////END///////////////////////////



    }

}

如何在不填充整个ScrollView的情况下将ImageView放在CardView中?

1 个答案:

答案 0 :(得分:0)

我已经解决了我的问题。我尝试使用40px x 40px图片,然后按我想要的方式工作。见图片: Screenshot 1

当您使用高分辨率图片时,该应用程序无法处理GridLayout中ImageView的填充。