【问题标题】:How to set ImageView in CardView properly如何在 CardView 中正确设置 ImageView
【发布时间】:2019-11-05 05:13:09
【问题描述】:

所以我正在制作一个类似应用程序的画廊,它需要一些 ScrollView 和 CardView 在里面。

This is the screenshot when I put some background in the ImageView

This is how it suppose to look, I have removed the background image here

我尝试将 ImageView 放入具有线性布局的 CardView 内部,但 Image 填充了 ScrollView。

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

       val card_view = CardView(this)                                                      
       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                                                                            
       card_view.layoutParams = param2                                                     
       subLayoutGrid?.addView(card_view)                                                                      

       val linearLayout = LinearLayout(this)                                               
       val layoutParams = WindowManager.LayoutParams(                                      
           WindowManager.LayoutParams.WRAP_CONTENT, // CardView width                      
           WindowManager.LayoutParams.WRAP_CONTENT // CardView height                      
       )                                                                                                                                       
       linearLayout.layoutParams = layoutParams                                                                               
       linearLayout.setBackgroundColor(Color.parseColor("#135517"))                        
       card_view.addView(linearLayout)                                                     


       val imageView = ImageView(this)                                                     
       val imageParams = WindowManager.LayoutParams(                                       
           WindowManager.LayoutParams.MATCH_PARENT,                                        
           WindowManager.LayoutParams.MATCH_PARENT                                         
       )                                                                                   
       imageView.layoutParams = imageParams                                                                                                       
       imageView.setBackgroundResource(R.drawable.animaleight)                             
       val layout = findViewById<LinearLayout>(finallinearId)                              
       layout.addView(imageView)                                                           


   }                                                                                       

}

如何使用 ImageView 在图像 2 上实现类似的效果

【问题讨论】:

  • 查看 GridView 的演示示例来解决您的问题。请尝试一下。
  • 您的问题不清楚。您当前的代码无法从所需的结果中实现什么?
  • 我已经关注了这个,但是 ImageView 仍然填满了整个 ScrollView。有什么想法吗?
  • ImageView 正在填充整个 scrollView 而不是填充 CardView 并尊重 CardView 的高度和宽度
  • 我认为不是匹配父级,而是使用包装内容并添加固定大小的图像,如 40*40

标签: android kotlin android-cardview


【解决方案1】:

我相信这是因为您将 cardView 的宽度和高度设置为 WRAP_CONTENT,而您放在这里的图像非常大,因此您应该更改图像的大小或使用 cardView 的固定大小,例如 100dp 高度和 100dp-宽度,但这不是最好的选择,或者您可以尝试更改您的 xml 文件,如果您将放置您的 xml 文件,我会帮助您。 也只要它是 LinearLayout 尝试将每个项目“权重”参数“1”

【讨论】:

  • 是的,我使用的是 520X520 图片,但我尝试将其放在相同大小的图像视图中,但一切都很好:(
  • 好的,如果您需要帮助,您可以将 xml 放在这里 :)
  • 谢谢,但我需要以编程方式进行,因为卡片视图代表一个项目,并且每个项目都有不同的类别。
  • 知道了,那么您是否尝试将“重量”参数放入 cardView?
  • 是的,我是这样做的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 2021-08-06
  • 2019-11-16
  • 1970-01-01
相关资源
最近更新 更多