1个视图android布局上的2个属性

时间:2018-09-04 15:13:37

标签: java android xml

我正在尝试在具有背景色的线性布局上设置可选背景。我知道通常的方式是android:background =“?android:attr / selectableItemBackground”,但是我已经在后台有了另一个代码。这是代码段。

<LinearLayout
        android:id="@+id/number"
        android:layout_width="150dp"
        android:layout_height="130dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="5dp"
        android:layout_marginTop="0dp"
        android:background="@color/category_colors"
        android:gravity="center"
        android:orientation="vertical"
        android:weightSum="1">

问题是我如何在那里设置可选背景?

2 个答案:

答案 0 :(得分:0)

请尝试以下代码以获取大小:

android:foreground="?android:attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"

android前景属性是相对较新添加的XML属性,但不适用于API 22及以下!如果是这种情况,那么看起来我们将不得不在自定义XML文件中堆叠属性,但是不用担心,这比听起来容易!

1)在项目视图中,转到res / drawable文件夹

2)右键单击Drawable文件夹本身,然后选择new >>> drawable资源文件

3)输入文件名my_custom_button.xml(根目录并不重要,因为您将用以下代码替换它)

4)如果您还不在XML文本选项卡上,请单击它(相对于设计视图)

5)选择所有文本并基本上替换为以下内容:  (创建自定义颜色边框基本上是相同的步骤)。  随意更改颜色并玩耍,或将渐变(颜色混合)替换为您自己的自定义颜色!

<?xml version="1.0" encoding="utf-8"?>
<ripple
 xmlns:android="http://schemas.android.com/apk/res/android"
   android:color="@color/category_colors">
    <item android:id="@android:id/ripple">
        <shape android:shape="rectangle">
          <solid android:color="@color/colorPrimaryDark" />
             <corners android:radius="@dimen/button_radius_large" />
       </shape>
   </item>

    <item android:id="@android:id/background">
       <shape android:shape="rectangle">
            <gradient
               android:angle="90"
               android:endColor="@color/colorPrimaryLight"
               android:startColor="@color/colorPrimary"
               android:type="linear" />
           <corners android:radius="@dimen/button_radius_large" />
        </shape>
    </item>
</ripple>

希望能帮助您!

答案 1 :(得分:0)

您应该像下面的代码一样使用背景选择器XML文件,并应用您的初始颜色以及按色和按色。

然后,您必须像这样创建res / drawable / bg_selector.xml文件:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_pressed="true"
            android:color="@color/color_056DAE" /> <!-- pressed -->
  <item android:state_focused="true"
            android:color="@color/color_056DAE" /> <!-- focused -->
  <item android:color="@color/color_333333" /> <!-- default -->
</selector>

然后,您必须将此文件应用到XML布局的背景中。

android:background="@drawable/bg_selector"