标签: layer-list

android shape xml以编程方式旋转drawable更改颜色

这是三角形的xml:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/shape_id">
        <rotate
            android:fromDegrees="45"
            android:toDegrees="45"
            android:pivotX="-40%"
            android:pivotY="87%" >
            <shape android:shape="rectangle" >
                <stroke android:width="10dp"/>
            </shape>
        </rotate>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

这是textview的背景

<TextView
    android:id="@+id/headlineSelect_TXT2"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_weight="1"
    android:background="@drawable/category_triangle_shape1"
    android:visibility="invisible" />
Run Code Online (Sandbox Code Playgroud)

我想以编程方式改变形状的颜色.我试过这个,但我得到空指针异常

LayerDrawable bgDrawable = (LayerDrawable) getActivity()
    .getResources()
    .getDrawable(R.drawable.category_triangle_shape1);
final GradientDrawable shape = (GradientDrawable) bgDrawable
    .findDrawableByLayerId(R.id.shape_id);
shape.setStroke(10,Color.GREEN);
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?感谢帮助.

xml android layer-list layerdrawable

2
推荐指数
1
解决办法
4947
查看次数

Android:我可以重复使用图层列表吗?

在为Buttons和ListView项目实现选择器时,我一直发现我想为state_pressed和state_focused重用相同的项目/背景.

而不是重复XML'代码',是否可以重用?

例如,这是我的state_pressed'代码' - 如何让state_focused使用相同的'代码'而不重复它?

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">

  <item android:state_pressed="true">
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <!--  PDS: Side lowlight lines Inset so hidden underneath solid colour -->
    <item android:bottom="0dp" android:right="0dp" android:top="0dp" android:left="0dp">
      <shape>
          <solid  android:color="#00000000" />
          <stroke android:color="@color/butGreySelectFrame" android:width="4dp"/>
          <corners android:radius="4dp" />              
      </shape>     
    </item> 

    <!-- PDS: Solid colour --> 
    <item android:left="4dp" android:right="4dp" android:top="4dp" android:bottom="4dp">              
      <shape>
        <solid android:color="@color/butGreySelectBack" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
      </shape>
      </item>

    </layer-list>
</item>
Run Code Online (Sandbox Code Playgroud)

xml code-reuse android layer-list

2
推荐指数
1
解决办法
1017
查看次数

图层列表忽略<size>标记

我想创建一个自定义单选按钮.

当用户选择它时,我使用<selector><layer-list>在大圆圈上显示小圆圈.

但它似乎<size>完全忽略了标签!

我的代码如下:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false">
    <shape>
        <size android:width="40dp" android:height="40dp"></size>
        <corners android:radius="5dp"></corners>
        <solid android:color="@color/blue"/>
    </shape>
</item>
<item android:state_checked="true">
    <layer-list>
        <item>
            <shape>
                <size android:width="40dp" android:height="40dp"/>
                <corners android:radius="5dp"/>
                <solid android:color="@color/blue"/>
            </shape>
        </item>
        <item>
            <shape>
                <size android:width="20dp" android:height="20dp"/>
                <corners android:radius="5dp"/>
                <solid android:color="@color/white"/>
            </shape>
        </item>
    </layer-list>
</item>
Run Code Online (Sandbox Code Playgroud)

xml android layer-list

2
推荐指数
1
解决办法
783
查看次数

带有图层列表的自定义绘图

我将创建一个如下图所示的可绘制对象,其中包含一个箭头图像。

当我使用 layer-list 时,箭头图像出现在我的 drawable 中间!!!

请让我知道我怎样才能实现它......

更新:这是我的图层列表:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item >
    <shape android:shape="rectangle">
        <corners android:radius="5dp"/>
        <solid android:color="#d5d5d5"/>
        <stroke android:width="1dp" android:color="#242425"/>
    </shape>
</item>

<item android:drawable="@drawable/ic_arrow"></item>
Run Code Online (Sandbox Code Playgroud)

android layer-list

2
推荐指数
1
解决办法
3950
查看次数

如何缩放和居中一个drawable inside layer-list android?

我试图将可绘制的图像居中,并在两侧使用一些填充物作为闪屏徽标.问题是它要么在整个屏幕上拉伸,要么在我使用时忽略任何填充gravity.

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<item
    android:drawable="@color/grey_3"/>

<item android:gravity="top|center_horizontal|center_vertical" android:drawable="@drawable/zc_logo_r"
      android:top="100dp"
      android:left="200dp"
      android:right="200dp"
      android:layout_margin="100dp"
    >
</item>
Run Code Online (Sandbox Code Playgroud)

我已尝试使用位图,android:gravity="fill_horizontal"以及对SO的各种其他建议,结果相同.

如何在xml中缩放和居中图像?

xml android splash-screen android-layout layer-list

2
推荐指数
1
解决办法
6617
查看次数

android图层列表不会同时显示渐变和实体

我不明白这段代码发生了什么.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item android:bottom="10dp">
    <shape android:shape="rectangle" >
        <solid android:color="#ff8898A4" />
    </shape>
</item>
<item>
    <shape android:shape="rectangle" >
        <gradient
            android:angle="90"
            android:endColor="#ffD6DDD8"
            android:startColor="#ffB1BBC3" />
    </shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

如果我将实体移动到渐变下方,则不会显示渐变.但它现在的稳固方式将不会显示出来.两个固体我没有任何麻烦.我究竟做错了什么?

xml android gradient layer-list

1
推荐指数
1
解决办法
5680
查看次数

创建一个包含另一个drawable和margin的drawable

有没有办法在xml中创建一个drawable,它使用图像和一些边距来抵消它?这是为了将drawable添加到无法设置边距的位置,即更改操作栏的"向上"插入符号时.

android margin drawable android-xml layer-list

1
推荐指数
1
解决办法
1653
查看次数

以编程方式更改图层列表项的顶部/右侧/底部/左侧

我有一个 layer-list.xml

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
    </item>
    <item
        android:id="+id/item_2"
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white" />
        </shape>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

现在我想改变项目的一些属性,比如(top,right)在运行时。我可以通过以下方式更改项目内部形状的颜色

LayerDrawable layerDrawable = (LayerDrawable) v.getContext().getResources().getDrawable(R.drawable.layer_list);
GradientDrawable drawable2 = (GradientDrawable) layerDrawable.findDrawableByLayerId(R.id.item_2);
drawable2.setColor(strokeColor[0]); 
Run Code Online (Sandbox Code Playgroud)

但是不知道怎么改top,right。我怎样才能改变它?
任何帮助或建议将不胜感激。

android drawable layer-list

1
推荐指数
1
解决办法
1722
查看次数

如何将笔划应用于android中的按钮特定边

如何将笔划应用于按钮的左侧边框和右侧边框?在android中.

我已应用以下代码,但它无法正常工作

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- This is the main color -->
<item>
      <shape>
            <solid android:color="#EEEEEE" />
      </shape>
</item>

<!-- This is the line -->
<item android:right="1dp">
     <shape>
           <solid android:color="#333333" />
     </shape>
</item>

<item android:left="1dp">
    <shape >
        <solid android:color="#333333"/>
    </shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

android layer-list

0
推荐指数
1
解决办法
3885
查看次数

自定义 imageView 的阴影

我创建了一个简单的播放图标。我将 SVG 文件导入 Android Studio 并将其作为 imageView 来源。然而,不幸的是我无法从我的 Adope XD 文档中引入下拉阴影。在这两种情况下,我一直在尝试通过代码复制下拉阴影效果。然而我一直没有成功。

左图是我所拥有的,右图是我需要的: 在此输入图像描述

我一直在搞乱现有的代码,但没有成功。这是我到目前为止所拥有的:

图片查看:

<ImageView
    android:id="@+id/thumbnail_next"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:background="@drawable/background_drop_shadow"
    app:srcCompat="@drawable/ic_next_button_image_select" />
Run Code Online (Sandbox Code Playgroud)

ic_next_button_image_select(导入的 SVG):

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="40dp"
    android:height="38dp"
    android:viewportWidth="40"
    android:viewportHeight="38">
  <path
      android:pathData="M12,0L28,0A12,12 0,0 1,40 12L40,26A12,12 0,0 1,28 38L12,38A12,12 0,0 1,0 26L0,12A12,12 0,0 1,12 0z"
      android:fillColor="#1ed760"/>
  <path
      android:pathData="M27.6,17.28a2,2 0,0 1,-0 3.439l-10.083,5.987A2,2 0,0 1,14.5 24.987L14.5,13.013a2,2 0,0 1,3.021 -1.72Z"
      android:fillColor="#090909"/>
</vector>
Run Code Online (Sandbox Code Playgroud)

background_drop_shadow(我找到并尝试使用的代码):

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Drop Shadow Stack -->
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <stroke android:color="#02000000" android:width="1dp" …
Run Code Online (Sandbox Code Playgroud)

xml android shadow android-imageview layer-list

0
推荐指数
1
解决办法
4436
查看次数