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 次 |
最近记录: |