标签: android-drawable

如何在Android中更改Drawable的颜色?

我正在开发一个Android应用程序,我有一个可绘制的,我正在从源图像加载.在这个图像上,我想将所有白色像素转换为不同的颜色,比如说蓝色,然后缓存生成的Drawable对象,以便稍后使用.

例如,假设我有一个20x20的PNG文件,中间有一个白色圆圈,圆圈外的所有内容都是透明的.将白色圆圈变为蓝色并缓存结果的最佳方法是什么?如果我想使用该源图像创建几个新的Drawables(比如蓝色,红色,绿色,橙色等),答案是否会改变?

我猜我想以某种方式使用ColorMatrix,但我不确定如何.

android android-drawable

253
推荐指数
14
解决办法
30万
查看次数

标准的Android菜单图标,例如刷新

Android SDK提供标准菜单图标android.R.drawable.X.但是,ic_menu_refresh缺少某些标准图标,例如(刷新图标)android.R.

有没有办法获得原始图标,可能是从应用程序中提取它们?我已经检查了Android源代码,但它看起来有点太大了,无法随处查看图像.

我知道Android Drawables网站,但我想得到正确的hdpi,mdpildpi版本,比原版更好.

android android-icons android-drawable

215
推荐指数
5
解决办法
22万
查看次数

调整浮动操作按钮(fab)的图标大小

浮动按钮 新的浮动操作按钮应为56dp x 56dp,其中的图标应为24dp x 24dp.所以图标和按钮之间的空间应该是16dp.

<ImageButton
    android:id="@+id/fab_add"
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:layout_gravity="bottom|right"
    android:layout_marginBottom="16dp"
    android:layout_marginRight="16dp"
    android:background="@drawable/ripple_oval"
    android:elevation="8dp"
    android:src="@drawable/ic_add_black_48dp" />
Run Code Online (Sandbox Code Playgroud)

ripple_oval.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:colorControlHighlight">
    <item>
        <shape android:shape="oval">
            <solid android:color="?android:colorAccent" />
        </shape>
    </item>
</ripple>
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果:
浮动按钮结果
我使用了\ material-design-icons-1.0.0\content\drawable-hdpi\ic_add_black_48dp.png中的图标
https://github.com/google/material-design-icons/releases/tag/1.0.1

如何使按钮内的图标大小完全如指南中所述?

http://www.google.com/design/spec/components/buttons.html#buttons-floating-action-button

android android-layout android-icons android-drawable floating-action-button

160
推荐指数
10
解决办法
16万
查看次数

使用XML drawable的垂直线

我试图弄清楚如何定义一条垂直线(1dp厚)用作drawable.

要做一个横向的,它非常简单:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">
    <stroke android:width="1dp" android:color="#0000FF"/>
    <size android:height="50dp" />     
</shape>
Run Code Online (Sandbox Code Playgroud)

问题是,如何使这条线垂直?

是的,有一些解决方法,例如绘制1px厚的矩形形状,但如果它由多个<item>元素组成,则会使可绘制XML变得复杂.

有没有机会这个?

UPDATE

案件仍未解决.但是,对于Android文档运动中的任何人 - 您可能会发现这很有用: 缺少Android XML手册

UPDATE

除了我标记为正确的那个之外,我找不到别的办法.它虽然感觉有点"沉重",但如果你碰巧知道答案不要忘记分享;)

android line android-layout android-xml android-drawable

146
推荐指数
8
解决办法
22万
查看次数

在XML数组中存储R.drawable ID

我想R.drawable.*使用XML值文件以数组内部的形式存储可绘制资源的ID ,然后在我的活动中检索数组.

有关如何实现这一目标的任何想法?

arrays android android-xml android-resources android-drawable

141
推荐指数
4
解决办法
8万
查看次数

如何修复:android.app.RemoteServiceException:从包*发布的错误通知:无法创建图标:StatusBarIcon

我在崩溃日志中看到以下异常:

android.app.RemoteServiceException: Bad notification posted from package com.my.package: Couldn't create icon: StatusBarIcon(pkg=com.my.package user=0 id=0x7f02015d level=0 visible=true num=0 )
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1456)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:146)
    at android.app.ActivityThread.main(ActivityThread.java:5487)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
    at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

我使用以下方法通过AlarmManager从PendingIntent集中从IntentService发布我的通知.此处传递的所有值都来自PendingIntent/IntentService中的bundle extras.

/**
 * Notification 
 *
 * @param c
 * @param intent
 * @param notificationId
 * @param title
 * @param message
 * @param largeIcon
 * @param smallIcon
 */
public static void showNotification(Context c, Intent intent,
        int notificationId, String title, String message, int …
Run Code Online (Sandbox Code Playgroud)

android android-notifications android-resources android-drawable

112
推荐指数
9
解决办法
6万
查看次数

具有底部笔划的android形状

我需要创建一个android形状,以便只有底部有笔画(虚线).当我尝试以下操作时,笔划将形状从中心平分.有谁知道怎么做对吗?中风需要是底线/边界.我使用形状作为TextView的背景.请不要在意我为什么需要它.

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

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#1bd4f6" />
        </shape>
    </item>

    <item>
        <shape android:shape="line" >
            <padding android:bottom="1dp" />

            <stroke
                android:dashGap="10px"
                android:dashWidth="10px"
                android:width="1dp"
                android:color="#ababb2" />
        </shape>
    </item>

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

android layer-list android-drawable android-styles

111
推荐指数
9
解决办法
16万
查看次数

从矢量drawable获取位图

在我的应用程序中,我必须为通知设置一个大图标.LargeIcon必须是一个Bitmap,我的drawables是矢量图像(Android中的新功能,请看这个链接)问题是当我尝试解码一个矢量图像的资源时,我得到一个null返回.

以下是代码示例:

if (BitmapFactory.decodeResource(arg0.getResources(), R.drawable.vector_menu_objectifs) == null)
        Log.d("ISNULL", "NULL");
    else
        Log.d("ISNULL", "NOT NULL");
Run Code Online (Sandbox Code Playgroud)

在这个例子中,当我用一个"普通"图像替换R.drawable.vector_menu_objectifs,例如一个png例如,结果不为空(我得到正确的位图)是否有我缺少的东西?

android bitmap android-drawable android-vectordrawable

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

使用按钮背景颜色为我的按钮添加涟漪效果?

我创建了一个按钮,我想为该按钮添加涟漪效果!

我创建了一个按钮bg XML文件:(bg_btn.xml)

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient android:startColor="#FFFFFF" android:endColor="#00FF00" android:angle="270" />
<corners android:radius="3dp" />
<stroke android:width="5px" android:color="#000000" />
</shape>
Run Code Online (Sandbox Code Playgroud)

这是我的涟漪效应文件:(ripple_bg.xml)

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:color="#f816a463"
    tools:targetApi="lollipop">
    <item android:id="@android:id/mask">
        <shape android:shape="rectangle">
            <solid android:color="#f816a463" />
        </shape>
    </item>
</ripple>
Run Code Online (Sandbox Code Playgroud)

这是我想要添加涟漪效果的按钮:

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button"
android:layout_centerHorizontal="true"
android:layout_marginTop="173dp"
android:textColor="#fff"
android:background="@drawable/ripple_bg"
android:clickable="true" />
Run Code Online (Sandbox Code Playgroud)

但添加涟漪效果后按钮背景是透明的,只有在点击时才会显示按钮,如下所示:

点击之前

点击

但我需要按钮背景颜色和涟漪效果,我在Stack Overflow的不同博客中发现了一些此代码,但它仍然无效!

android android-layout android-drawable rippledrawable

107
推荐指数
10
解决办法
11万
查看次数

开放式Android中风?

是否可以仅在某些方面创建具有笔划的Android形状对象?

我有:

<stroke 
 android:width="3dip" 
 android:color="#000000"
    android:dashWidth="10dip" 
    android:dashGap="6dip" />
Run Code Online (Sandbox Code Playgroud)

这与CSS类似:

border: 3px dashed black;
Run Code Online (Sandbox Code Playgroud)

如何在一侧设置笔划?我就是这样在CSS中做的:

border-left: 3px dashed black;
Run Code Online (Sandbox Code Playgroud)

你是如何在Android XML中做到这一点的?

android android-drawable android-shape

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