标签: xml-drawable

另一个矩形内的矩形

是否可以像图片一样从xml创建drawable?第一个矩形包含第二个矩形.

如果是,请向我解释如何.

绘制

android xml-drawable

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

如何创建由两种颜色并排组成的android drawable?

Uisng XML是否可以创建一个drawable,其中一半是color1而另一半是color2?当我将drawable设置为视图的背景时,它应该如下图所示.

在此输入图像描述

android drawable xml-drawable android-drawable

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

使用自定义可绘制XML的涟漪效应?

我需要为所有控件添加波纹效果,以向应用程序添加生动性。由于我的最低API级别为18,所以我无法<ripple>在drawable xml中使用。同样,我所有的控件都有自定义可绘制的XML。

我的自定义控件可绘制

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <padding
                android:bottom="2dp"
                android:left="2dp"
                android:right="2dp"
                android:top="2dp"/>
            <solid android:color="@color/border1"/>
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="1dp"
                android:left="1dp"
                android:right="1dp"
                android:top="1dp"/>
            <corners android:radius="15dp"/>
            <solid android:color="@color/border2"/>
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="1dp"
                android:left="1dp"
                android:right="1dp"
                android:top="1dp"/>
            <corners android:radius="15dp"/>
            <solid android:color="@color/border3"/>
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="2dp"
                android:left="2dp"
                android:right="2dp"
                android:top="2dp"/>
            <corners android:radius="15dp"/>
            <solid android:color="@color/border4"/>
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="2dp"
                android:left="2dp"
                android:right="2dp"
                android:top="2dp"/>
            <corners android:radius="15dp"/>
            <solid android:color="@color/border5"/>
        </shape>
    </item>

    <!-- Background -->
    <item>
        <shape>
            <solid android:color="@color/menu_bg"/> …
Run Code Online (Sandbox Code Playgroud)

android xml-drawable rippledrawable

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

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

如何从Xml文件动态设置TextView的背景

我有一个像下面的xml文件,我将用它来设置背景Textview:

row.xml

      <?xml version="1.0" encoding="utf-8"?>
      <shape xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="rectangle">
      <gradient android:endColor="#CCCCCC" android:startColor="#CCCCCC"
      android:angle="270" />
      <stroke android:width="1dp" android:color="#999999" />
      <corners android:bottomRightRadius="0dp"
      android:bottomLeftRadius="0dp" android:topLeftRadius="0dp"
      android:topRightRadius="0dp" /></shape>
Run Code Online (Sandbox Code Playgroud)

上面的Xml我将在main.xml中设置为TextView的背景,如下所示:

main.xml中

<TextView
android:id="@+id/rowtext3"
android:text="Availablity"
android:layout_height="25px"
android:layout_width="60px"
android:textSize="10px"
android:textStyle="bold"
android:textColor="@color/black"
android:gravity="center"
android:background="@drawable/row"
/>
Run Code Online (Sandbox Code Playgroud)

但我希望这可以从代码而不是Xml.我已经完成了我在Xml中所做的一切,如字体,宽度,高度,字体动态通过代码,但不能设置我在Xml文件中提到的背景.我们如何将Xml文件的内容设置为textview的背景,类似于我们在main.xml中将背景设置为XML的方式.

在代码我这样做:

    t1=new TextView(this); <br>
    t1.setText(ed1.getText()); <br>
    t1.setHeight(25); <br>
    t1.setWidth(60); <br>
    t1.setTextSize(10); <br>
Run Code Online (Sandbox Code Playgroud)

但我没有找到如何设置背景,即如何将XML内容设置为背景?
任何人都可以帮我解决这个问题吗?
提前致谢,

android textview xml-drawable

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

我可以在drawable文件夹中有一个XML支持多个按钮的多种颜色/边框吗?

我有2个按钮,有两种不同的颜色和边框颜色.所以我需要在具有shape属性的drawable文件夹中创建XML,并且:

<stroke
    android:width="1dp"
    android:color="#C5510E" />

<solid android:color="#F78340" />`
Run Code Online (Sandbox Code Playgroud)

和另一个XML:

<stroke
    android:width="1dp"
    android:color="#FFFFFF" />

<solid android:color="#000000" />
Run Code Online (Sandbox Code Playgroud)

有没有办法可以在一个XML内部处理drawable文件夹而不是两个XML?

android shape button xml-drawable

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

更改可绘制名称后Android中的ClassCastException?

我正在写一个Android应用程序,并遇到了一个非常奇怪的情况.我有一个动画列表xml文件,我为一个名为'loading.xml'的动画加载图形创建,我将其设置为我的代码中ImageView的背景.它是这样的:

public void startLoading() {
   if(!isLoading) {
      loading.setBackgroundResource(R.drawable.loading);
      loading.post(new Runnable() {
         public void run() {
            anim = (AnimationDrawable) loading.getBackground();
            anim.start();
         }
      });

      flMask.setBackgroundResource(R.drawable.mask_loading);
      flMask.setVisibility(View.VISIBLE);
      flMask.bringToFront();

      isLoading = true;
   }
}
Run Code Online (Sandbox Code Playgroud)

这非常有效,没有任何问题.但是,如果我将'loading.xml'重命名为'anim_loading.xml'(为了使其与我通常的命名方案保持一致),我会使用

java.lang.ClassCastException: android.graphics.drawable.ColorDrawable

在哪里

anim = (AnimationDrawable)loading.getBackground();

更改名称后,强制关闭,如果我将其更改回'loading.xml',它将再次正常工作.

我真的很难过这个.我尝试使用正确的名称创建一个全新的文件,各种清理/构建,关闭/重新打开Eclipse,关闭/重新打开AVD,擦除AVD并重新安装新的,我已经尝试将xml文件完全重命名为其他内容,并且没有其他相同名称的资源.到目前为止,除了保留名为'loading.xml'的文件之外没有任何工作,至少它可以工作,但它很烦人.我无法找到任何具有相同类型问题的人,这些问题与SO和互联网一样广泛,通常意味着我在某个地方错过了一些愚蠢的事情.

有没有人有任何想法,为什么它不会改变这个文件上的名称?

android classcastexception xml-drawable

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

Android Drawable(进度条,开关)渲染问题

我正在尝试实现以下UI.我正在使用Eclipse和ADT插件.

Spotify UI

以下是圆圈[白色+深灰色](circle_shape.xml)的实现:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape android:shape="ring" android:innerRadius="65dp" android:thickness="10dp"
            android:useLevel="false">
            <solid android:color="@android:color/white" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <shape android:shape="ring" android:innerRadius="57dp" android:thickness="8dp" android:useLevel="false">
            <solid android:color="#FF393939" />
        </shape>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

和进度条[绿色](circle_progress_bar.xml)为:

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="270" android:toDegrees="270">
    <shape android:innerRadius="65dp" android:shape="ring" android:thickness="10dp">
        <gradient android:angle="0" android:endColor="#FF00FF00" android:startColor="#FF00FF00" android:type="sweep" android:useLevel="false" />
    </shape>
</rotate>
Run Code Online (Sandbox Code Playgroud)

在布局xml文件中:

<ProgressBar
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_alignBottom="@+id/repeat"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="36dp"
    android:background="@drawable/circle_shape"
    android:indeterminate="false"
    android:max="100"
    android:progress="65"
    android:progressDrawable="@drawable/circular_progress_bar" />
Run Code Online (Sandbox Code Playgroud)

问题1: 上面的代码为我提供了我想要的精确形状,但仅限于API 19和API 20.只要我将Eclipse中的预览模式切换到API 21,progressDrawable就会填满整个圆圈而只留下单个圆圈充满了绿色.我无法想象如何在Android L上做同样的事情.

问题2: 这与切换按钮有关.在API 21中,我可以轻松设置

<android:textOn="" android:textOff="">
Run Code Online (Sandbox Code Playgroud)

按钮看起来很好.但是,如果我在API19中查看相同内容,则Thumb …

eclipse android xml-drawable android-drawable android-5.0-lollipop

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

为什么当我触摸 ImageView 时,应用于 ImageView 的 state-list-drawable 不使用 drawable 用于按下状态?

ImageView在 XML 中定义如下:

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/fragment_imageView"
        android:src="@drawable/ic_photo"
        android:background="@drawable/button_state_list_drawable" />
Run Code Online (Sandbox Code Playgroud)

button_state_list_drawable.xml是:

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

    <item android:drawable="@drawable/button_pressed_state_drawable"
        android:state_pressed="true" />

    <item android:drawable="@drawable/button_enabled_state_drawable"
        android:state_enabled="true" />

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

button_pressed_state_drawable.xml是:

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

    <size android:width="50dp"
        android:height="50dp" />

    <padding android:left="25dp"
        android:right="25dp"
        android:top="25dp"
        android:bottom="25dp" />

    <stroke android:color="#fff"
        android:width="1dp" />

    <solid android:color="#1aafd0" />

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

button_enabled_state_drawable.xml是:

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

    <size android:width="50dp"
        android:height="50dp" />

    <padding android:left="25dp"
        android:right="25dp"
        android:top="25dp"
        android:bottom="25dp" />

    <stroke android:color="#fff" …
Run Code Online (Sandbox Code Playgroud)

android imageview xml-drawable statelistdrawable android-drawable

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

如何更改可绘制资源中的线条长度?

我使用以下 xml 代码来绘制可绘制图像:

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

    <item>
        <shape
            android:shape="rectangle" >
            <corners
                android:topLeftRadius="30dp"
                android:topRightRadius="30dp"
                android:bottomLeftRadius="30dp"
                android:bottomRightRadius="30dp" />
            <solid
                 android:color="@color/black" />
            <padding
                 android:left="0dp"
                 android:top="0dp"
                 android:right="0dp"
                 android:bottom="0dp" />
            <size
                 android:width="60dp"
                 android:height="60dp" />
           </shape>
     </item>

     <item>
        <rotate
             android:fromDegrees="45"
             android:toDegrees="45"
             android:pivotX="50%"
             android:pivotY="50%">

            <shape
                android:shape="line">
                <stroke
                      android:width="2dp"
                     android:color="@color/white" />
               </shape>
          </rotate>
     </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

通过上面的代码,我最终得到了这个图像: 在此输入图像描述

现在我必须减少圆中心白线的长度。我已经使用了<size android:height="40dp" /><size android:width="40dp" />就行了,但它没有任何作用。那么,如何减少线路长度呢?

android xml-drawable

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