相关疑难解决方法(0)

多梯度形状

我想创建一个类似下图的形状:

替代文字

注意从颜色1到颜色2的上半部分渐变,但是从颜​​色3到颜色4渐变的下半部分.我知道如何使用单个渐变制作形状,但我不确定如何将形状分割成两半,并制作1个形状,2个不同的渐变.

有任何想法吗?

android gradient shapes

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

可以使用GradientColor完全用XML定义填充或描边的渐变吗?

我正在查看GradientColor的文档https://developer.android.com/reference/android/R.styleable.html#GradientColor.如何在XML中定义渐变颜色并将其应用于XML矢量drawable?

我在color.xml,styles.xml和XML vector vector中尝试过.

我收到错误"无法将@id/gradclor转换为ColorStateList":

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="120dp"
    android:height="120dp"
    android:viewportWidth="120.0"
    android:viewportHeight="120.0">

    <path
        android:name="play_triangle"
        android:pathData="M 30 30 L 30 90 L 80 60 z"
        android:strokeColor="@id/gradclor"
        android:strokeWidth="5"/>

    <color
        android:name="@+id/gradclor"
        android:startColor="#FFFFFF"
        android:endColor="#00FFFF"
        android:angle="145"/>

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

或者"使用时无法将#FFFFFFFF#00FFFFFF 145转换为ColorStateList":

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="120dp"
    android:height="120dp"
    android:viewportWidth="120.0"
    android:viewportHeight="120.0">

    <path
        android:name="play_triangle"
        android:pathData="M 30 30 L 30 90 L 80 60 z"
        android:strokeColor="@color/GradientStrokeBorder"
        android:strokeWidth="5"/>

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

使用color.xml中的以下内容:

<color name="GradientStrokeBorder">
    <item name="android:startColor">#FFFFFF</item>
    <item name="android:endColor">#00FFFF</item>
    <item name="android:angle">145</item>
</color>
Run Code Online (Sandbox Code Playgroud)

xml android android-vectordrawable

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

如何将状态栏背景设置为渐变颜色或android中的drawable

我想将状态栏背景设置为渐变主题,状态栏和动作栏颜色应该是相同的渐变可绘制,根据文档,我们可以使用API​​级别21及以上的状态栏将颜色设置为使用

<item name="android:statusBarColor">@color/colorPrimary</item>
Run Code Online (Sandbox Code Playgroud)

但我正在寻找类似的东西

<item name="android:statusBarDrawable">@drawable/myDrawable</item>
Run Code Online (Sandbox Code Playgroud)

我见过使用的例子

 <item name="android:windowTranslucentStatus">false</item>
   <item name="android:windowTranslucentNavigation">false</item>
Run Code Online (Sandbox Code Playgroud)

但在那种情况下状态栏和操作栏重叠(使用fitSystemWindow = true但仍未解决)也尝试使用https://github.com/jgilfelt/SystemBarTint这个库,但仍然没有运气

先感谢您!!

android gradient statusbar drawable

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

仅在Android Nougat上找不到可绘制资源ID的ColorStateList

我在我的Crashlytics中发现了这个错误,看起来它只对具有预览版Android Nougat的用户而言是崩溃的.

应用程序在启动时崩溃(主要活动).

堆栈跟踪

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.domain/com.my.domain.activities.MainActivity}: android.content.res.Resources$NotFoundException: Can't find ColorStateList from drawable resource ID #0x7f020057
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
   at android.app.ActivityThread.-wrap12(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:154)
   at android.app.ActivityThread.main(ActivityThread.java:6077)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by android.content.res.Resources$NotFoundException: Can't find ColorStateList from drawable resource ID #0x7f020057
   at android.content.res.ResourcesImpl.loadColorStateList(ResourcesImpl.java:840)
   at android.content.res.Resources.loadColorStateList(Resources.java:998)
   at android.content.res.TypedArray.getColor(TypedArray.java:447)
   at android.app.Activity.onApplyThemeResource(Activity.java:4039)
   at android.view.ContextThemeWrapper.initializeTheme(ContextThemeWrapper.java:198)
   at android.view.ContextThemeWrapper.setTheme(ContextThemeWrapper.java:140)
   at android.app.Activity.setTheme(Activity.java:4009)
   at android.support.v7.app.AppCompatActivity.setTheme(AppCompatActivity.java:90)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2592)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
   at android.app.ActivityThread.-wrap12(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:154) …
Run Code Online (Sandbox Code Playgroud)

android android-7.0-nougat

9
推荐指数
1
解决办法
4789
查看次数