【问题标题】:CustomLoading in android ( error : expected resource of type drawable )android中的CustomLoading(错误:drawable类型的预期资源)
【发布时间】:2015-04-17 15:31:01
【问题描述】:

有人可以推荐在android项目中自定义加载的最佳方法吗?

我正在使用这个post

我的代码:

_readNewsAsyncTaskManager = new ReadNewsAsyncTaskManager();

_loadigIcon.setImageResource(R.anim.loading_animation);// Error*
loadingViewAnim = (AnimationDrawable) _loadigIcon.getBackground();

// This line is to start Asyn Task only when OnCreate Method get completed, So Loading Icon Rotation Animation work properly
_loadigIcon.post(new Starter());

错误*:预期的可绘制类型资源

加载动画:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_loading_1" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_2" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_3" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_4" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_5" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_6" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_7" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_8" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_9" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_10" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_11" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_12" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_13" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_14" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_15" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_16" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_17" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_18" android:duration="50" />
    <item android:drawable="@drawable/ic_loading_19" android:duration="50" />
</animation-list>

【问题讨论】:

    标签: android


    【解决方案1】:

    这不是编译器错误。这只是编辑器验证错误(lint 警告),因为这不是处理 Drawable 的常用方法。

    有两种解决方案:

    1. 将 loading_animation 文件从 anim 文件夹移动到 drawable 文件夹

    2. 替换
      _loadigIcon.setImageResource(R.anim.loading_animation);

      _loadigIcon.setImageResource(+R.anim.loading_animation);

    参考答案:Android - Expected Resource of type ID

    【讨论】:

    • 参见link 中的示例代码。 animation.xml 文件必须在 res/drawable/ 文件夹而不是 res/anim/ 中。并使用 R.drawable.animation NOT R.anim.animation 设置背景资源。我不了解历史,但我认为需要调整此解决方案。
    • 加号是什么意思? @shusheng007
    【解决方案2】:

    我的解决方案:

    忘记这个post

    将 loading_animation 文件从 anim 文件夹移动到 drawable 文件夹

    和 loading_animation 文件:

    <animation-list
     xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
            <item android:duration="50">
                <clip
                    android:clipOrientation="horizontal"
                    android:drawable="@drawable/ic_loading_1"
                     />
            </item>
            <item android:duration="50">
                <clip
                    android:clipOrientation="horizontal"
                    android:drawable="@drawable/ic_loading_2"
                     />
            </item>
            <item android:duration="50">
                <clip
                    android:clipOrientation="horizontal"
                    android:drawable="@drawable/ic_loading_3"
                     />
            </item>
            <item android:duration="50">
                <clip
                    android:clipOrientation="horizontal"
                    android:drawable="@drawable/ic_loading_4"
                     />
            </item>
            <item android:duration="50">
                <clip
                    android:clipOrientation="horizontal"
                    android:drawable="@drawable/ic_loading_5"
                     />
            </item>
        </animation-list>
    

    我用这个:

                   <ProgressBar
                       android:layout_width="32sp"
                       android:layout_height="32sp"
                       android:layout_gravity="center_vertical|center_horizontal"
                       android:id="@+id/progressBar"
                       android:indeterminateDrawable="@drawable/loading_animation"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-24
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 2017-06-06
      • 2023-04-10
      • 1970-01-01
      • 2023-04-06
      相关资源
      最近更新 更多