我正在开发一个Android应用程序,我有一个可绘制的,我正在从源图像加载.在这个图像上,我想将所有白色像素转换为不同的颜色,比如说蓝色,然后缓存生成的Drawable对象,以便稍后使用.
例如,假设我有一个20x20的PNG文件,中间有一个白色圆圈,圆圈外的所有内容都是透明的.将白色圆圈变为蓝色并缓存结果的最佳方法是什么?如果我想使用该源图像创建几个新的Drawables(比如蓝色,红色,绿色,橙色等),答案是否会改变?
我猜我想以某种方式使用ColorMatrix,但我不确定如何.
Android SDK提供标准菜单图标android.R.drawable.X.但是,ic_menu_refresh缺少某些标准图标,例如(刷新图标)android.R.
有没有办法获得原始图标,可能是从应用程序中提取它们?我已经检查了Android源代码,但它看起来有点太大了,无法随处查看图像.
我知道Android Drawables网站,但我想得到正确的hdpi,mdpi和ldpi版本,比原版更好.
新的浮动操作按钮应为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
我试图弄清楚如何定义一条垂直线(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
除了我标记为正确的那个之外,我找不到别的办法.它虽然感觉有点"沉重",但如果你碰巧知道答案不要忘记分享;)
我想R.drawable.*使用XML值文件以数组内部的形式存储可绘制资源的ID ,然后在我的活动中检索数组.
有关如何实现这一目标的任何想法?
arrays android android-xml android-resources android-drawable
我在崩溃日志中看到以下异常:
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
我需要创建一个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) 在我的应用程序中,我必须为通知设置一个大图标.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例如,结果不为空(我得到正确的位图)是否有我缺少的东西?
我创建了一个按钮,我想为该按钮添加涟漪效果!
我创建了一个按钮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形状对象?
我有:
<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中做到这一点的?