Dan*_*Dan 64 android android-appcompat imageview android-cardview
我有一个CardView圆角,我希望有一个ImageView顶部,如下面的材料设计指南中的示例所示.

<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
card_view:cardCornerRadius="4dp">
<!-- ... -->
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)
然后在里面CardView我有这个ImageView
<ImageView
android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_height="150dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:scaleType="centerCrop"
android:src="@drawable/default_cover" />
Run Code Online (Sandbox Code Playgroud)
如果我有card_view:cardCornerRadius设置,0dp那么ImageView卡就像我想要的那样.

但是,材料设计指南规定卡片应有圆角,而不是方角.
我遇到的问题是当我设置card_view:cardCornerRadius其他东西时 0dp,例如4dp,然后发生以下情况:

可以看出,ImageView它不适合CardView.
我的问题是,我怎样才能使它ImageView适合CardView圆角时的布局.
김준호*_*김준호 58
你需要做两件事:
1)调用setPreventCornerOverlap(false)您的CardView.
2)在CardView中放置圆形 Imageview
关于舍入你的imageview,我遇到了同样的问题,所以我创建了一个库,你可以在每个角上设置不同的半径.有一个很好的库(vinc3m1的RoundedImageView)支持ImageView上的圆角,但它只支持每个角上相同的半径.但我希望它只是左上角和右上角的圆角.
最后我得到了我想要的结果如下.
https://github.com/pungrue26/SelectableRoundedImageView

jam*_*mes 23
如果图像大小(宽度)与ImageView宽度一致,那么您只需将ImageView属性更改为:
android:scaleType="fitXY"
Run Code Online (Sandbox Code Playgroud)
那是.没有额外的图像转角,没有繁忙的工作.除了它有效的应用程序的性能.
注意:我的建议可能不适合大尺寸的小图像ImageView.
too*_*o42 15
我把它放在一个RoundedImageView内部工作CardView.您还需要设置适当的CardView属性.
https://medium.com/@etiennelawlor/layout-tips-for-pre-and-post-lollipop-bcb2e4cdd6b2#.kmb24wtkk
编辑2015/09/29
https://github.com/vinc3m1/RoundedImageView添加了对选定角点的舍入的支持
您还可以使用makeramen RoundedImageView https://github.com/vinc3m1/RoundedImageView,并删除CardView中的自动填充以供LolliPop使用
yourCardView.setPreventCornerOverlap(假);
然后设置你需要的填充来显示cardview的阴影
| 归档时间: |
|
| 查看次数: |
66512 次 |
| 最近记录: |