Phi*_*lip 2 android android-layout
我正在尝试创建一个带有径向渐变的按钮,但是每次加载应用程序时,它都会崩溃。
mylayout.xml:
...
<Button
android:id="@+id/mybutton"
android:layout_width="@dimen/btnwidth"
android:layout_height="@dimen/btnheight"
android:background="@drawable/mybutton" />
...
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
下面是错误日志。我的目标是Android SDK 22。
致命异常:main java.lang.RuntimeException:无法启动活动ComponentInfo {com.my.app/com.my.app.MyActivity}:android.view.InflateException:二进制XML文件行#324:android上的类按钮膨胀错误.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2413)在android.app.ActivityThread.access $ 800(ActivityThread.java:155)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1317)在android.os.Handler.dispatchMessage(Handler.java:102)在android.os.Looper.loop(Looper.java:135)在android.app.ActivityThread.main(位于com.android.internal.os的java.lang.reflect.Method.invoke(Method.java:372)处的java.lang.reflect.Method.invoke(Native Method)的ActivityThread.java:5343)。com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)处的ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:905)原因:android.view.InflateException:二进制XML文件行#324:错误膨胀类android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)处的按钮android.view.LayoutInflater.rInflate(LayoutInflater.java:806)处android.view.LayoutInflater.inflate(LayoutInflater.java:504)处的按钮com.my.app.ui.MyFragment.onCreateView(MyFragment.java:183)上的.LayoutInflater.inflate(LayoutInflater.java:414)在android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)上android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1116)上的android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:924)。app.FragmentManagerImpl.addFragment(FragmentManager.java:1218)在android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2170)在android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:300) android.support.v7.app.App.App7.app7.app.AppCompatDelegateImplV7.callActivityOnCreateView(AppCompatDelegateImplV7.java:816)android.support.v7.app.AppCompatDelegateImplV11.callActivityOnCreateView(AppCompatDelegateImplV11.java:72) (AppCompatDelegateImplV7.java:804)在android.support.v4.view.LayoutInflaterCompatHC $ FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725)在android.view.LayoutInflater。 rInflate(LayoutInflater.java:806)android.view.LayoutInflater.rInflate(LayoutInflater.java:809)android.view.LayoutInflater.inflate(LayoutInflater.java:504)android.view.LayoutInflater.inflate(LayoutInflater.java:414)android。 android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)上的view.LayoutInflater.inflate(LayoutInflater.java:365)在android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)在com.my.app.MyActivity.onCreate(MyActivity.java:1033)在android.app.Activity.performCreate(Activity.java:6010)在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1129)在android。 app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)... 10更多原因:android.content.res.Resources $ NotFoundException:来自android.content.res.Resources.loadDrawableForCookie(Resources.java:2482)的可绘制资源ID#0x7f02008a的res / drawable-hdpi / mybutton.xml文件,android.content.res.Resources.loadDrawable(Resources.java:2384)在android.content.res.TypedArray.getDrawable(TypedArray.java:749)在android.view.View。(View.java:3742)在android.widget.TextView。(TextView.java:637)在android.widget。 android.widget的Button。(Button.java:111).android.support.v7.widget.AppCompatButton的Button。(Button.java:107).android.support.v7.widget的Button。(Button.java:60)。位于android.support.v7.internal.app.AppCompatViewInflater.createView的AppCompatButton。(AppCompatButton.java:56)2482)在android.content.res.Resources.loadDrawable(Resources.java:2384)在android.content.res.TypedArray.getDrawable(TypedArray.java:749)在android.view.View。(View.java:3742)在android.widget.TextView。(TextView.java:637)在android.widget.Button。(Button.java:111)在android.widget.Button。(Button.java:107)在android.support.v7.widget .AppCompatButton。(AppCompatButton.java:60)在android.support.v7.widget.AppCompatButton。(AppCompatButton.java:56)在android.support.v7.internal.app.AppCompatViewInflater.createView2482)在android.content.res.Resources.loadDrawable(Resources.java:2384)在android.content.res.TypedArray.getDrawable(TypedArray.java:749)在android.view.View。(View.java:3742)在android.widget.TextView。(TextView.java:637)在android.widget.Button。(Button.java:111)在android.widget.Button。(Button.java:107)在android.support.v7.widget .AppCompatButton。(AppCompatButton.java:60)在android.support.v7.widget.AppCompatButton。(AppCompatButton.java:56)在android.support.v7.internal.app.AppCompatViewInflater.createView111)在android.widget.Button。(Button.java:107)在android.support.v7.widget.AppCompatButton。(AppCompatButton.java:60)在android.support.v7.widget.AppCompatButton。(AppCompatButton.java: 56)在android.support.v7.internal.app.AppCompatViewInflater.createView111)在android.widget.Button。(Button.java:107)在android.support.v7.widget.AppCompatButton。(AppCompatButton.java:60)在android.support.v7.widget.AppCompatButton。(AppCompatButton.java: 56)在android.support.v7.internal.app.AppCompatViewInflater.createView
您需要一个渐变半径:
<gradient
android:type="radial"
android:gradientRadius="40"
android:startColor="@color/my_start_color"
android:endColor="@color/my_end_color"/>
Run Code Online (Sandbox Code Playgroud)