标签: android-drawable

使用具有三种以上颜色的gradientDrawable

根据我读过的内容,您可以使用gradientDrawable并为其设置三种颜色,例如:

<gradient startColor="#00FF00" centerColor="#FFFF00" endColor="#FFFFFF"/>
Run Code Online (Sandbox Code Playgroud)

但是,如果我想要超过三种颜色,不仅如此,我希望能够设置每个颜色的位置(重量/百分比)?

是否可以使用API​​或我应该制作自己的自定义drawable?如果我需要制作自己定制的可绘制的,我应该怎么做?

android gradient colors android-drawable

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

Android:如何通过右侧的交叉按钮清除EditText

我创建了一个EditTextfor搜索,它在左侧包含一个搜索图标,在图标的右侧:

<EditText
    android:id="@+id/Search"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:drawableLeft="@android:drawable/ic_menu_search"
    android:drawableRight="@android:drawable/ic_delete"
    android:hint="Search Product .." >
</EditText>
Run Code Online (Sandbox Code Playgroud)

我想知道如何清除EditText单击十字按钮时的内容.

先感谢您.

android android-widget android-edittext android-drawable

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

为EditText创建自定义背景drawable

我正在尝试将自定义drawable设置为EditText,如下所示:

除了

所以我写了这个自定义drawable:

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

        android:paddingBottom="12dp"
        android:paddingLeft="36dp"
        android:paddingRight="12dp"
        android:paddingTop="12dp">
<item>
    <shape>
        <corners android:radius="6dp"/>
        <solid android:color="@android:color/white"/>
        <stroke
            android:width="1dp"
            android:color="#BBBBBB"/>
    </shape>
</item>
<item
    android:width="32dp"
    android:gravity="left">
    <shape android:shape="rectangle">
        <size android:width="32dp"/>
        <corners
            android:bottomLeftRadius="6dp"
            android:topLeftRadius="6dp"/>
        <solid android:color="#AAAAAA"/>
    </shape>
</item>
<item android:left="8dp">
    <bitmap
        android:gravity="left"
        android:src="@drawable/ic_email"
        android:tileMode="disabled"/>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

预览的结果非常好(除了不同的角落尺寸,Android Studio不处理)

导致预览

但在设备中,它完全不起作用......第二项是拉伸的,不尊重宽度属性.

导致设备

我知道,我可以用9补丁来做,但我想知道是否可以使用drawables?

android android-drawable

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

VectorDrawable图像变为像素化

我使用了一些我使用Android Studio的Vector Asset Studio通过本地SVG文件导入的图像.

这些图像完美地加载在我的nexus 6p上,然而,在Sony Xperia Z上,它非常像素化,在三星Galaxy s2上,它更糟糕.

根据我的理解,由于文件是xml(矢量)而不是png文件,它应该能够自动调整大小或者我错过了某些东西.

我附上了3个案例的图片. 在此输入图像描述

编辑:只是一些额外的信息:该文件最初是一个PNG,但是,我已经使用名为Vector Magic的程序完全转换为矢量文件.我可以在插画家上打开它并编辑每一行等.

通过求解从VectorDrawable改变通过VectorDrawableCompat.create(..)方法来VectorDrawableCompat.谢谢@pskink.

xml svg android vector android-drawable

15
推荐指数
2
解决办法
3483
查看次数

自定义形状的Linearlayout,在android中有弯曲的一面

我正在尝试制作如下所示的自定义形状的线性布局

在此输入图像描述

我试图只使一侧弯曲.尝试了角半径,但它没有给出与上面相同的外观.

已尝试过如下背景形状: -

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

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

    <corners
        android:bottomLeftRadius="50dp"
        android:bottomRightRadius="50dp"
        android:topLeftRadius="0dp"
        android:topRightRadius="0dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

它只对角进行四舍五入,并且在增加值时,形状不会被保留,它会变得太圆.我想弯曲线而不是圆角

android android-xml android-drawable android-shape

14
推荐指数
5
解决办法
1万
查看次数

是否可以在23之前的Android API中创建固定大小的drawable?

这是一个可用于radiobutton的选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">
        <layer-list>
            <item>
                <shape android:shape="rectangle">
                    <solid android:color="@color/ColorPrimaryDark" />
                </shape>
            </item>
            <item>
                <layer-list>
                    <item android:gravity="center_vertical|left" android:left="20dp">
                        <shape android:shape="oval">
                            <size android:width="20dp" android:height="20dp" />
                            <stroke android:color="#ffffff" android:width="2dp" />
                        </shape>
                    </item>
                    <item android:gravity="center_vertical|left" android:left="25dp">
                        <shape android:shape="oval">
                            <size android:width="10dp" android:height="10dp" />
                            <solid android:color="#ffffff" />
                        </shape>
                    </item>
                </layer-list>
            </item>
        </layer-list>
    </item>
    <item android:state_checked="false">
        <layer-list>
            <item>
                <shape android:shape="rectangle">
                    <solid android:color="@color/ColorPrimary" />
                </shape>
            </item>
            <item android:gravity="center_vertical|left"
                android:left="20dp">
                <shape android:shape="oval">
                    <size android:width="20dp" android:height="20dp" />
                    <stroke android:color="#ffffff" android:width="2dp" />
                </shape>
            </item>
        </layer-list>
    </item> …
Run Code Online (Sandbox Code Playgroud)

android android-drawable

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

在Android中使用矢量drawable和一组.png的图标有什么区别?

使用vector drawables和使用一组.pngAndroid系统图标有什么优缺点?

如果它们用于两种不同的东西,那是什么?

png android android-image android-drawable

14
推荐指数
2
解决办法
6164
查看次数

如何为材质按钮设置渐变背景?

我目前正在使用此代码,但背景没有改变。它仍然显示强调色作为背景。

<com.google.android.material.button.MaterialButton
    android:id="@+id/materialButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello"
    app:cornerRadius="32dp"
    android:background="@drawable/gradiant_blue"/>
Run Code Online (Sandbox Code Playgroud)

gradiant_blue.xml

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

   <gradient
       android:angle="-45"
       android:startColor="#2979FF"
       android:endColor="#7C4DFF"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

我目前正在使用

材料组件版本:1.0.0-rc02

android android-button android-drawable material-components-android

14
推荐指数
2
解决办法
9592
查看次数

使用圆角可绘制

流行的Google开发人员Romain Guy发了一篇很好的文章,展示了如何有效地在视图上使用圆角可绘制(在他的代码中称为"StreamDrawable" ).

在纵向模式下,样本本身在我的Galaxy S3上工作得非常好,但我有一些问题:

  1. 如果屏幕较小(例如在qvga屏幕上),则显示的图像会被裁剪.

  2. 如果我的输入位图太小而不是我希望显示的位置,则输出图像的边缘会被涂抹.即使在Galaxy S3上,当您运行示例代码并且它在横向上时,它看起来很糟糕:

    在此输入图像描述

  3. 我仍然不确定它(因为我使用缩放图像以使用示例代码的解决方法),但它认为即使这个解决方案在listView中使用时有点慢.也许这有一个renderscript解决方案?

如果我使用setImageDrawable或setBackgroundDrawable并不重要.它必须是drawable本身的东西.

我试过玩变量和bitmapShader,但没有任何效果.可悲的是,TileMode没有拉伸图像的值,只是以某种方式对其进行平铺.

作为一种解决方法,我可以创建一个新的缩放位图,但它只是一种解决方法.当然有一种更好的方法,也不会使用更多的内存.

如何解决这些问题并使用这个优秀的代码?

android rounded-corners android-drawable

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

透明黑色渐变形状可绘制颜色代码

视图寻呼机指示器的渐变

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient 
        android:startColor="#000"
        android:centerColor="#00000000"
        android:endColor="#000"
        android:angle="270"
        android:dither="true"
     />
</shape>
Run Code Online (Sandbox Code Playgroud)

这是我尝试的代码,但它最终成为纯黑色.

android gradient shape android-drawable

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