标签: xml-drawable

了解Android的<layer-list>

我不明白图层列表是如何工作的.我通过一些例子阅读了官方文档,但它并不像我预期的那样适用于我.我想要四个正方形,应该用1dp填充,但没有任何预期.这是一个按500%缩放的屏幕截图:

我的suares
(错误的颜色无关紧要)
正如您所看到的那样,尺寸完全错误并且缺少填充.我试图设置像宽度/高度和右/左/顶部/按钮的实际值,以确保android得到我想要的点.

这是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="0dp" android:left="0dp" android:bottom="0dp" android:right="0dp">
        <shape android:shape="rectangle">
            <size android:width="9dp"
                android:height="9dp"/>
            <solid android:color="#f000"/>
        </shape>
    </item>

    <item android:top="1dp" android:left="1dp" android:bottom="5dp" android:right="5dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#f00"/>
        </shape>
    </item>
    <item android:top="1dp" android:left="5dp" android:bottom="5dp" android:right="1dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#0f0"/>
        </shape>
    </item>

    <item android:top="5dp" android:left="1dp" android:bottom="1dp" android:right="5dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#0f0"/>
        </shape>
    </item>
    <item android:top="5dp" android:left="5dp" android:bottom="1dp" android:right="1dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid …
Run Code Online (Sandbox Code Playgroud)

android xml-drawable layer-list android-drawable

56
推荐指数
2
解决办法
9万
查看次数

使用可绘制资源

我有这个问题,请看跟踪堆栈:

E/AndroidRuntime(2410): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #5: <bitmap> requires a valid src attribute
Run Code Online (Sandbox Code Playgroud)

我的xml文件如下所示:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap android:src="@drawable/btn_1"/>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

btn_1是可绘制资源中的另一个xml文件当我使用图像(*.png)而不是xml drawable时,它没问题.

我可以使用可绘制资源作为src来进行位图吗?以防万一这是我的btn_1.xml文件.即使btn_1文件没有项目,它也不起作用.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/btn_arrow_bg_red"/>
<item>
    <bitmap
        android:gravity="center"
        android:src="@drawable/btn_arrow_white" />
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

android bitmap drawable xml-drawable

52
推荐指数
3
解决办法
2万
查看次数

如何预览xml drawable?

我正在研究相当复杂的xml drawable,我想知道是否有任何工具/插件可以让我预览我的drawable?

我正在寻找类似于可用于布局的"图形布局"选项卡.

例如,如果我有这样的事情:

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

    <item android:left="0dp" android:right="0dp"> 
        <shape android:shape="rectangle">

            <gradient android:angle="-90" android:startColor="#2B2B2B"
                android:endColor="#000000" />

        </shape>
    </item>
    <item android:top="1sp" android:bottom="26sp" > 
        <shape android:shape="rectangle">
            <solid android:color="#10ffffff"/>
    </shape>

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

如何预览形状和渐变?而且我可能在做梦,但有没有任何图形工具可以构建一个可绘制的?

android xml-drawable

39
推荐指数
4
解决办法
2万
查看次数

BitmapFactory.decodeResource()为xml drawable中定义的形状返回null

我查看了多个类似的问题,虽然我的查询没有找到正确的答案.

我有一个drawable,在shape.xml中定义

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

    <solid android:color="@color/bg_color" />
</shape>
Run Code Online (Sandbox Code Playgroud)

我想将其转换为Bitmap对象以执行某些操作,但BitmapFactory.decodeResource()返回null.

这就是我这样做的方式:

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.shape);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?是BitmapFactory.decodeResource()适用于XML定义可绘制?

android xml-drawable android-drawable

37
推荐指数
2
解决办法
2万
查看次数

如何使用可与图像一起绘制的形状?

我有这个困难,我的圆角和背景图像LinearLayout.

我知道我可以通过使用形状绘制XML achive圆角,但是如果我把形状绘制作为我的背景LinearLayoutandroid:background=@drawable/rounded_corner那么我不能将任何图像作为背景.

如何在LinearLayout中同时获得带有背景图像的圆角?任何帮助,将不胜感激.谢谢!

android android-layout xml-drawable

35
推荐指数
1
解决办法
3万
查看次数

如何获得android渐变中心光效?

我想要像下面的图像

在此输入图像描述

我尝试使用可绘制的形状

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
    android:angle="360"
    android:centerX="50%"
    android:centerY="50%"

    android:gradientRadius="50%"
    android:endColor="#000000"
    android:centerColor="#FFFFFF"
    android:startColor="#000000" >
</gradient>
</shape> 
Run Code Online (Sandbox Code Playgroud)

android xml-drawable android-drawable

35
推荐指数
3
解决办法
5万
查看次数

Android按钮选择并按下drawable

我正在尝试用状态按下并选择一个按钮,我已经对标签做了同样的工作,但我不知道为什么这里不起作用.我这样做了:

button_sel.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
       android:shape="rectangle">
    <gradient android:startColor="@color/azulado" 
              android:endColor="@color/azulBrillante"
              android:angle="270" />
     <corners android:radius="@dimen/corner_radius" />
     <stroke android:width="2px" 
             android:color="@color/blanco" />
 </shape>
Run Code Online (Sandbox Code Playgroud)

button_unsel.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
       android:shape="rectangle">
    <gradient android:startColor="@color/botonesD" 
              android:endColor="@color/botones"
              android:angle="270" />
    <corners android:radius="@dimen/corner_radius" />
    <stroke android:width="2px" 
            android:color="@color/blanco" />
</shape>
Run Code Online (Sandbox Code Playgroud)

和选择器,button.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_sel"  
          android:state_selected="true" 
          android:state_pressed="true"/>
<item android:drawable="@drawable/button_unsel" 
      android:state_selected="false" 
      android:state_pressed="false"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

在这里我将drawable称为背景:

 <style name="button">
    <item name="android:background">@drawable/button</item>
    <item name="android:textSize">@dimen/text_size</item>
    <item name="android:padding">@dimen/padding_button</item>
    <item name="android:textColor">@color/blanco</item>
 </style>
Run Code Online (Sandbox Code Playgroud)

谢谢!!!!

android styles button xml-drawable android-drawable

31
推荐指数
2
解决办法
5万
查看次数

Android形状边框与渐变

我想为linearLayout创建一个边框.所以我决定创造一个形状.我希望边框有一个渐变.以下不是这样做的.它填充矩形,然后创建笔画.我不想要一个填充的矩形,只需要一个笔画.我想将渐变应用于笔画.

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

    <gradient
        android:angle="360"
        android:centerColor="#e95a22"
        android:endColor="#ff00b5"
        android:gradientRadius="360"
        android:startColor="#006386"
        android:type="sweep" />

    <stroke
        android:width="2dp"
        android:color="#ff207d94" />

</shape>
Run Code Online (Sandbox Code Playgroud)

android android-layout xml-drawable android-drawable

31
推荐指数
3
解决办法
4万
查看次数

Android虚线可绘制潜在的ICS错误

以下是虚线,在XML中定义为ShapeDrawable:

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">

    <size
        android:height="2dp"
        android:width="700dp" />

    <stroke
        android:width="1dp"
        android:color="@android:color/black"
        android:dashWidth="1dp"
        android:dashGap="2dp" />

</shape>
Run Code Online (Sandbox Code Playgroud)

这将在几个姜饼手机上绘制一个漂亮的虚线.然而,在Galaxy Nexus上,破折号似乎被忽略,并且形状被绘制为连续的线.更奇怪的是,运行ICS的仿真器将使用破折号正确渲染它,它只是物理设备搞砸了.

我错过了一些明显的东西吗 或者这真的是Android 4.0的错误吗?这条线在几个地方使用.以下是ImageView的示例:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="@dimen/observation_observe_side_margin"
    android:layout_marginRight="@dimen/observation_observe_side_margin"
    android:layout_marginTop="16dp"
    android:contentDescription="@string/dotted_line_description"
    android:src="@drawable/dotted_line" />
Run Code Online (Sandbox Code Playgroud)

android xml-drawable shapedrawable

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

当应用程序在真正的Android设备上运行时,虚线实际上没有点缀

在我的应用程序中,我使用XML定义的垂直虚线.

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="90"
    android:toDegrees="90">
<shape

    android:shape="line">
    <stroke

        android:width="1dp"
        android:color="@color/light_gray"
        android:dashWidth="2dp"
        android:dashGap="4dp"
        />
</shape>
Run Code Online (Sandbox Code Playgroud)

当我在Android Studio中挑选我的布局时,线条会正确地呈现点状,但是当我在真实设备上运行应用程序时出现问题.这条线很稳固,没有间隙.你知道问题出在哪里吗?我尝试了很多不同的设备,包括那些运行最新4.3 Android的设备.它看起来无处不在:/

android dotted-line xml-drawable android-drawable

28
推荐指数
3
解决办法
8636
查看次数