设置Cardview Shape&背景半透明

时间:2018-06-14 08:36:23

标签: android android-layout android-fragments

我在线性布局和卡片视图中添加了背景图像。在CardView下我添加了另一个渐变背景图像并设置了alpha .5。当我添加TextView并添加Text时,文本也变为半透明,如图所示。我尝试使用Bold外观,但它没有用。 I have uploaded the Image

   <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     tools:context="com.vikramgehlot.QuotesandStatus.Apj"
     android:background="@drawable/materialbackground" >
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="215dp"
         android:orientation="vertical">
         <ImageView
             android:layout_marginTop="0dp"
             android:layout_width="match_parent"
             android:layout_height="215dp"
             android:src="@drawable/ic_format_quote_black_24dp" />
 <LinearLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent">
     <android.support.v7.widget.CardView
       android:layout_margin="10dp"
         android:layout_width="350dp"
         android:layout_height="70dp"
         app:cardCornerRadius="40dp"
         android:alpha=".5">
         <LinearLayout
             android:layout_margin="6dp"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:background="@drawable/rectangle"
             android:alpha=".5">
             <TextView
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:gravity="fill"
                 android:text="Don’t let a mad world tell you that success is anything other than a successful present moment. "
                 android:textColor="@color/black"
                 android:textStyle="bold"
                 android:textSize="13dp"
               />
         </LinearLayout>
     </android.support.v7.widget.CardView>
 </LinearLayout>
     </LinearLayout>
    </ScrollView>
     </LinearLayout>

4 个答案:

答案 0 :(得分:2)

通过将cardview的alpha设置为0.5,您将使其所有后代视图的alpha值均为0.5。您应该使linearlayout的背景,即@ drawable / rectangle具有alpha( ARGB ,例如#98000000)的颜色,而不是将alpha设置为0.5到linearlayout和cardview。

答案 1 :(得分:2)

您可以为十六进制颜色赋予透明度。每个透明度的百分比都有一个唯一的代码,如here所述。

您可以在颜色文件中创建具有透明性的颜色并将其设置为卡片背景。例如:

set_timestamp

意味着白色的不透明度为25%。

答案 2 :(得分:0)

TextView的不透明度发生了变化,因为它是您的CardView的孩子。将TextView和CardView分别放在可以重叠然后居中的布局中,将它放在CardView上方。这样,您可以为视图设置不同的alpha。试试下面的XML。

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.vikramgehlot.QuotesandStatus.Apj"
        android:background="@drawable/materialbackground" >
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="215dp"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="215dp"
                    android:layout_marginTop="0dp"
                    android:src="@drawable/ic_format_quote_black_24dp" />

                <RelativeLayout
                    android:layout_width="350dp"
                    android:layout_height="70dp"
                    android:alpha="1">

                    <FrameLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent">

                        <android.support.v7.widget.CardView
                            android:layout_width="350dp"
                            android:layout_height="70dp"
                            android:alpha="1"
                            android:visibility="visible"
                            app:cardCornerRadius="40dp">

                            <LinearLayout
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:layout_margin="6dp"
                                android:alpha=".5"
                                android:background="@drawable/rectangle">

                            </LinearLayout>
                        </android.support.v7.widget.CardView>
                    </FrameLayout>

                    <FrameLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent">

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:alpha="1"
                            android:gravity="fill"
                            android:text="Don’t let a mad world tell you that success is anything other than a successful present moment. "
                            android:textAllCaps="false"
                            android:textColor="@color/black"
                            android:textSize="13dp"
                            android:textStyle="bold" />
                    </FrameLayout>

                </RelativeLayout>

            </LinearLayout>
        </ScrollView>
    </LinearLayout>

答案 3 :(得分:0)

只需在colors.xml中定义具有低不透明性的颜色,并将其作为cardview的背景即可。

编辑示例代码

colors.xml

<color name="semiTransparentColor">#20ffffff</color>

在CardView上设置此属性

card_view:cardBackgroundColor="@color/semiTransparentColor"

这会给你像杯子一样的卡片。

注意:您赋予颜色的不透明度百分比将是卡片的不透明度