我想为小部件制作自定义图片,我尝试过
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>
谢谢!
答案 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
。