窗口小部件自定义图标Android

时间:2018-08-27 18:36:17

标签: android widget

我想为小部件制作自定义图片,我尝试过

File > Open Windows Powershell

views.setImageViewResource(R.id.red_button, R.drawable.button_default);

但是它表示一直加载小部件时都出现问题,无论我尝试什么,我是否缺少某些东西?有人可以指出我正确的职责/怎么办? 编辑: 完整的xml:

Bitmap icon = BitmapFactory.decodeResource(context.getResources(),
        R.drawable.button_default);

    views.setImageViewBitmap(R.id.red_button, icon);

代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_green_dark"
    android:orientation="vertical"
    android:padding="@dimen/widget_margin">


    <ImageButton
        android:id="@+id/red_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Button"
        app:srcCompat="@drawable/button_default" />

</LinearLayout>

谢谢!

1 个答案:

答案 0 :(得分:1)

错误消息(“问题加载小部件”)不是由显示可绘制对象引起的,而是由于代码中的这一行而显示的:

  

views.setTextViewText(R.id.red_button, widgetText);

您只能将setTextViewText(int, CharSequence)与从View起扩展的TextView的资源ID一起使用(根据docs,它等效于TextView.setText(CharSequence))。 / p>

资源ID R.id.red_button属于ImageButton而不是ImageView的{​​{1}},这就是为什么您收到错误消息的原因。

因此,如果要显示一些文本,则需要在应用程序小部件的布局中添加TextView