我正在实施卡片视图,但我找不到任何边框选项来设置边框。
这是我的card.xml:
<android.support.v7.widget.CardView android:layout_marginTop="10dp"
android:id="@+id/cardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
card_view:cardPreventCornerOverlap="false"
app:cardPreventCornerOverlap="false"
xmlns:card_view="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<RelativeLayout
android:background="@drawable/tab_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Title"
android:textSize="20sp" />
</RelativeLayout>
</android.support.v7.widget.CardView>
这是我的图片,我想在卡片视图上实现绿色边框?
帮帮我。我怎么能实现这个呢?我不知道。
谢谢。
答案 0 :(得分:29)
创建drawable selector.xml
<cache:annotation-driven cache-manager="cacheManager"/>
<bean id="classManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"
p:cache-manager-ref="classCache" />
<bean id="classCache"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
p:config-location="classpath:ehcache.xml" p:cacheManagerName="${service.name}.Class"
p:acceptExisting="false" />
<bean id="cacheManager" class="org.springframework.cache.support.CompositeCacheManager">
<property name="cacheManagers">
<array>
<ref bean="classManager" />
<ref bean="eManager" />
</array>
</property>
<property name="fallbackToNoOpCache" value="true" />
</bean>
然后将此设置为背景,根据您的选择更改颜色
答案 1 :(得分:20)
从v28
设计支持库开始,我们可以使用Material Card View,它为我们提供了一种开箱即用的材质样式Cardview实现。
<android.support.design.card.MaterialCardView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_margin="10dp">
... child views ...
</android.support.design.card.MaterialCardView>
您可以通过使用其附带的两个属性来进一步设置卡片视图的样式:
答案 2 :(得分:9)
这是您的问题的解决方案:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="#ffffff" />
<stroke android:width="1dip" android:color="#00ff00"/>
<corners android:radius="20dip"/>
</shape>
将其用作布局的背景可绘制
答案 3 :(得分:3)
只需将MaterialCardView
与 app:strokeColor
和 app:strokeWidth
属性一起使用。
请注意,如果没有app:strokeColor
,则无论app:strokeWidth
的值如何(默认值为app:strokeColor=@null
和{ {1}}。
类似:
app:strokeWidth=0dp
答案 4 :(得分:0)
我通过使cardBackgroundColor
为绿色和contentPadding
1dp
并在卡片内部有ConstraintLayout
(或其他布局)和白色背景的情况下简化了此操作,像这样:
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
app:cardBackgroundColor="@color/colorAccent"
app:contentPadding="1dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:padding="8dp">
...
这样,不需要额外的xml或其他多余的代码。
结果:
答案 5 :(得分:0)
尽管这个问题很老,但可能会帮助其他面临此问题的人。只需在build.gradle中添加新的MDC库
implementation 'com.google.android.material:material:1.2.0-alpha05'
然后在布局中添加MaterialCardView
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
style="@style/CardViewStyle"
app:strokeColor="@color/your_color"
app:strokeWidth="@dimen/_1sdp">
</com.google.android.material.card.MaterialCardView>
in style.xml
<style name="CardViewStyle" parent="Widget.MaterialComponents.CardView">
<item name="cardBackgroundColor">@color/white</item>
<item name="cardForegroundColor">@color/transparent</item>
<item name="cardElevation">0dp</item>
<item name="rippleColor">@color/colorRipple</item>
</style>