我试图创建一个带有径向渐变的按钮,但每次我加载应用程序时,它都会崩溃。
mylayout.xml:
...
<Button
android:id="@+id/mybutton"
android:layout_width="@dimen/btnwidth"
android:layout_height="@dimen/btnheight"
android:background="@drawable/mybutton" />
...
我的按钮。xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<gradient
android:type="radial"
android:startColor="@color/my_start_color"
android:endColor="@color/my_end_color"/>
</shape>
</item>
</layer-list>
下面是错误日志。我的目标是Android SDK 22。
致命的例外:主java。lang.RuntimeException:无法启动活动组件信息{com.my.app/com.my.app.MyActivity}:android。看法充气异常:二进制XML文件行#324:在android上充气类按钮时出错。应用程序。活动线程。在android上执行LaunchActivity(ActivityThread.java:2339)。应用程序。活动线程。android上的handleLaunchActivity(ActivityThread.java:2413)。应用程序。活动线程。在Android上获得800美元(ActivityThread.java:155)。应用程序。android上的ActivityThread$H.handleMessage(ActivityThread.java:1317)。操作系统。汉德勒。android上的dispatchMessage(Handler.java:102)。操作系统。活套。android上的loop(Looper.java:135)。应用程序。活动线程。java上的main(ActivityThread.java:5343)。朗,反思一下。方法在java上调用(本机方法)。朗,反思一下。方法在com上调用(Method.java:372)。Android内部的操作系统。ZygoteInit$MethodandArgscaler。在com上运行(zyteinit.java:905)。Android内部的操作系统。合子体。main(ZygoteInit.java:700)由以下原因引起:android。看法充气异常:二进制XML文件行#324:在android上充气类按钮时出错。看法更平坦。在android上创建ViewFromTag(LayoutInflater.java:763)。看法更平坦。android上的rInflate(LayoutInflater.java:806)。看法更平坦。在android上充气(LayoutInflater.java:504)。看法更平坦。在com上充气(LayoutInflater.java:414)。我的应用程序。用户界面。我的碎片。android上的onCreateView(MyFragment.java:183)。支持v4。应用程序。碎片android上的performCreateView(Fragment.java:1789)。支持v4。应用程序。支离破碎。android上的moveToState(FragmentManager.java:924)。支持v4。应用程序。支离破碎。android上的moveToState(FragmentManager.java:1116)。支持v4。应用程序。支离破碎。android上的addFragment(FragmentManager.java:1218)。支持v4。应用程序。支离破碎。android上的onCreateView(FragmentManager.java:2170)。支持v4。应用程序。碎片活动。android上的onCreateView(FragmentActivity.java:300)。支持v7。应用程序。AppCompatDelegateImplV7。android上的callActivityOnCreateView(AppCompateDelegateImplv7.java:816)。支持v7。应用程序。AppCompatDelegateImplV11。android上的callActivityOnCreateView(AppCompateDelegateImplv11.java:72)。支持v7。应用程序。AppCompatDelegateImplV7。android上的onCreateView(AppCompateDelegateImplv7.java:804)。支持v4。看法LayoutInflaterCompatHC$FactoryWrapperHC。android上的onCreateView(LayoutInflaterCompatHC.java:44)。看法更平坦。在android上创建ViewFromTag(LayoutInflater.java:725)。看法更平坦。android上的rInflate(LayoutInflater.java:806)。看法更平坦。android上的rInflate(LayoutInflater.java:809)。看法更平坦。在android上充气(LayoutInflater.java:504)。看法更平坦。在android上充气(LayoutInflater.java:414)。看法更平坦。在android上充气(LayoutInflater.java:365)。支持v7。应用程序。AppCompatDelegateImplV7。android上的setContentView(appcompateDelegateImplv7.java:249)。支持v7。应用程序。应用程序活动。com上的setContentView(AppCompatActivity.java:106)。我的应用程序。我的活动。android上的onCreate(MyActivity.java:1033)。应用程序。活动android上的performCreate(Activity.java:6010)。应用程序。仪器。android上的callActivityOnCreate(Instrumentation.java:1129)。应用程序。活动线程。performLaunchActivity(ActivityThread.java:2292)。。。另外10个原因是:android。所容纳之物res.Resources$NotFoundException:文件res/drawable hdpi/mybutton。来自android上可绘制资源ID#0x7f02008a的xml。所容纳之物资源。android上的loadDrawableForCookie(参考资料:java:2482)。所容纳之物资源。android上的loadDrawable(参考资料:java:2384)。所容纳之物Darray先生。android上的getDrawable(TypedArray.java:749)。看法看法(View.java:3742)在android上。小装置。文本视图。(TextView.java:637)在android上。小装置。按钮(Button.java:111)在android上。小装置。按钮(Button.java:107)在android上。支持v7。小装置。点击按钮。(AppCompatButton.java:60)在android上。支持v7。小装置。点击按钮。(AppCompatButton.java:56)在android上。支持v7。内部的应用程序。这是充气机。createView
您可以尝试使用以下方法:
定义bg_按钮。xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/mybutton" android:state_pressed="true" />
<item android:drawable="@drawable/mybutton" />
</selector>
您还可以在那里定义按下状态。当您使用按钮时,这是有意义的。
而这将是你的mybutton.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<gradient
android:type="radial"
android:startColor="@color/my_start_color"
android:endColor="@color/my_end_color"/>
</shape>
最后,您必须将bg_按钮设置为按钮的背景:
<Button
android:id="@+id/mybutton"
android:layout_width="@dimen/btnwidth"
android:layout_height="@dimen/btnheight"
android:background="@drawable/bg_button" />
你需要一个渐变半径:
<gradient
android:type="radial"
android:gradientRadius="40"
android:startColor="@color/my_start_color"
android:endColor="@color/my_end_color"/>
我想创建一个模拟光的圆,我需要一个径向梯度。我希望它的中心是黄色的,外侧是透明的。 我试过了,但没有达到预期的效果。
问题内容: 我试图以编程方式重现以下渐变。 如何以编程方式设置参数?谢谢 问题答案: http://developer.android.com/reference/android/graphics/drawable/GradientDrawable.html 要设置该特定参数(我假设您没有指定一个centerX值): 因此,以编程方式创建上述渐变(不同颜色除外): 注意:对于径向渐变,方向将被忽略
对于最新的布料(4.1),我似乎找不到一个很好的例子,在整个画布上或在一个对象(如矩形)上设置径向渐变。 我对线性渐变没有问题,但是让径向定位正确(我只想在中心)却让我捉摸不透。这是我尝试过的代码。 JS:
在 Adobe XD 中创建、编辑、导入、使用渐变。使用“渐变”面板添加色标并控制渐变不透明度。 渐变是两个或多个颜色或者同一颜色或不同颜色的两个或多个色调之间的渐变混合。您可以使用渐变来创建颜色混合,向矢量对象添加卷,并在设计中添加光影效果。 XD 支持线性和径向渐变。 线性渐变 XD 以直线从起点渐变到终点。 径向渐变 XD 以圆形图案从起点渐变到终点。 渐变拾色器 要访问 XD 中的渐变拾色
SVG 径向渐变 - radialGradient <radialGradient> 元素用来定义一个径向渐变,和前面一样,它也必须包含在 <defs> 定义标签中。 实例代码1 - 椭圆 代码解释 <radialGradient> 标签的id属性定义了该渐变的唯一标识名称 cx, cy 和 r 属性定义了最外面的圆,fx 和
我正在尝试从GitHub导入一个项目,并在Android Studio上构建/运行它。我收到以下错误: “错误:无法使用指定的Gradle分发创建工具API实现的实例”https://services.gradle.org/distributions/gradle-2.4-all.zip'." 我尝试了以下方法: 使缓存无效并重新启动 将gradle包装/属性中的分发URL更改为2.5等 删除bu