Java 如何通过配置屏幕定制android模拟时钟小部件

Java 如何通过配置屏幕定制android模拟时钟小部件,java,android,view,configuration,clock,Java,Android,View,Configuration,Clock,我正在尝试在主屏幕上开发自己的模拟时钟小部件。它基于stock ICS模拟时钟小部件,但当添加到主屏幕时,我的小部件首先打开一个配置屏幕 在这个屏幕上,你可以选择你想要时钟的颜色(通过一个颜色选择器对话框)。您还可以在此屏幕上看到所选颜色的时钟预览。(见图)。我的问题是将主屏幕上小部件的颜色更改为所选颜色(当您点击应用按钮时)。我有三个.png文件用于拨号、时针和分针。我在widgetconfig类中使用以下代码为它们着色: Drawable dial = getResources()

我正在尝试在主屏幕上开发自己的模拟时钟小部件。它基于stock ICS模拟时钟小部件,但当添加到主屏幕时,我的小部件首先打开一个配置屏幕

在这个屏幕上,你可以选择你想要时钟的颜色(通过一个颜色选择器对话框)。您还可以在此屏幕上看到所选颜色的时钟预览。(见图)。我的问题是将主屏幕上小部件的颜色更改为所选颜色(当您点击应用按钮时)。我有三个.png文件用于拨号、时针和分针。我在widgetconfig类中使用以下代码为它们着色:

    Drawable dial = getResources().getDrawable(R.drawable.clockbackground);
    dial.setColorFilter(color, PorterDuff.Mode.MULTIPLY);
    //hour
    Drawable hour = getResources().getDrawable(R.drawable.hourhand);
    hour.setColorFilter(color, PorterDuff.Mode.MULTIPLY);
    //minute
    Drawable min = getResources().getDrawable(R.drawable.minutehand);
    min.setColorFilter(color, PorterDuff.Mode.MULTIPLY);
    // clock
    AnalogClock clockpreview = (AnalogClock) findViewById(R.id.ACconfig);
    clockpreview.setBackgroundDrawable(dial);
这很好,因为我可以找到AnalogClock,因为它位于配置屏幕的布局xml文件中,我通过setContentView()在OnCreate()中设置了它。 问题是,对于屏幕上的时钟小部件,我必须使用RemoteView。因此,我尝试通过RemoteView设置时钟小部件的新背景。但RemoteView似乎太有限,无法做到这一点。我需要像setTextViewText()这样的东西,但对于模拟时钟小部件的背景,例如:

    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.clockwidget);
    views.setAnalogClockBackgroundDrawable(dial);
时钟小部件的背景似乎是不可更改的。如何在widgetconfig类的主屏幕上重新启动时钟小部件?一定有办法,因为一开始似乎很容易做到


我的项目由widget config类和clockwidget类、widgetconfig.xml、clockwidget.xml和widget_info.xml(适用于appwidgetprovider)组成。

您需要修复屏幕截图的链接。(我得到的只是403的回复…)很抱歉,它现在应该可以工作了。我希望我的问题足够清楚,在这个问题上挣扎了太久…仍然没有答案:(,那真的不可能吗?