Android的AnalogClock:以编程方式设置drawables

我正在制作一个模拟时钟应用程序,在一个应用程序中有大约15个devise。 devisedevise的一种方法是为每个devise创build不同的widgetconfigs.XML ,但是会让运行4.0+的设备混乱。

我也想过build立一个允许改变devise的活动

 remoteviews.setInt(R.id.analogClock1, "setDialResource", R.drawable.clock1); 

但是,这不会允许手工绘制…我还能做什么?

Solutions Collecting From Web of "Android的AnalogClock:以编程方式设置drawables"

你真的画一次drawable(活动开始时)当然有一些animation和改变活动的样子,但不可绘制的东西你可以使用drawable为不同的对象在每个button有一个风格的活动,但你不能重绘。

你有2种方法来做这个项目:

1.使用XML

你可以做15个不同的活动,并通过意图你可以切换活动

 public void method() { Intent i = new Intent(this , Destination.class); startActivity(i); } 

2.使用代码

任何可以使用XMLdevise的东西也可以通过java代码来编写。 它需要更多的线条,但它可以是dynamic的,这意味着你不必为每个条件做出其他的决定; 您只需在每次需要时生成所需的对象。

例子:

XML

 <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_text" ... /> 

或以编程方式:

Button button = new Button(this); YourView.addview(button);