setAlpha用于RemoteViews问题

Kin*_*wai 5 android android-widget

我正在创建一个appwidget,并且我想要改变它的透明度的小部件上有一个位图.

在我的服务中:

RemoteViews remoteView = new RemoteViews(getApplicationContext().getPackageName(), R.layout.myWidget);

remoteView.setInt(R.id.widgetPNG, "setAlpha", 50);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.模拟器在主屏幕上显示"问题加载小部件".我很确定其他一切都很好,当我改变它的行更改它的imageResource它运行完美:remoteView.setInt(R.id.widgetPNG, "setImageResource", R.drawable.anotherPNG).

谁能帮我?我已经坚持了一个星期......

Reu*_*ton 9

如果你只能在Android源代码中标注注释的setInt()API上调用和朋友@RemotableViewMethod(例子).害怕setAlpha()不是其中之一.

也许你可以有两个背景图像,一个透明的图像和一个不透明的图像......

  • 试过它,自定义类不起作用.更改为9图像方式(在我的情况下为14).不管怎么说,还是要谢谢你! (2认同)
  • 更新:此答案所指的限制已在 Android API 31 上修复 (2认同)

小智 8

在XML中的imageview的src中设置图像.在java中:

 if (Integer.parseInt(Build.VERSION.SDK) > Build.VERSION_CODES.ECLAIR_MR1) {
     rViews.setInt(R.id.imageview, "setAlpha", 30);
 }
Run Code Online (Sandbox Code Playgroud)

尝试这个只支持2.1以上的支持