Android Widget(AppWidgetProvider)> '两个状态'按钮,如切换按钮..和WindowManager

时间:2012-11-04 16:37:46

标签: android widget togglebutton brightness appwidgetprovider

我终于设法用ONE按钮创建一个SIMPLE小部件(1x1单元格)。在我的情况下(现在)祝酒。这实际上很难做到。小部件的工作方式与普通应用程序不同。

到目前为止我所有重要文件的代码:
http://paste2.org/p/2427468


问题1:

我有一个普通的按钮,有背景。我在该按钮上有一个@drawable / ... xml,它定义了正常和按下状态的不同图像。这很好地退出了。 由于在WIDGETS上不支持toggleButton我必须使用'Button',但我想要切换按钮的效果。因此,在按下按钮后,必须固定/冻结按下的状态!接下来点击正常状态应该我固定/冻结。你是怎么做到的?



问题2:

如果问题1有效:我需要对正常状态和按压状态采取不同的动作。我想降低/增加屏幕的亮度。

在我创建的应用程序中,这有效:

    WindowManager.LayoutParams lp = getWindow().getAttributes();
    Toast.makeText(getBaseContext(),"Low brightness",Toast.LENGTH_LONG).show();
    lp.screenBrightness = 0.004F;
    float BackLightValue = lp.screenBrightness;
    int SysBackLightValue = (int)(BackLightValue * 255);
    android.provider.Settings.System.putInt(getContentResolver(),android.provider.Settings.System.SCREEN_BRIGHTNESS,SysBackLightValue);             
    getWindow().setAttributes(lp);

如何在小部件中实现此功能?

我相信我差不多完成了这个小部件,但是需要关注这两个问题。

谢谢!

1 个答案:

答案 0 :(得分:2)

不理解你的第一个问题,但对于第二个问题, 您可以创建一个没有UI的活动,并编写上述代码来设置亮度。使用意图调用此活动并在它们之间共享数据。