安卓模拟时钟:以编程方式设置可绘制对象

2022-09-02 22:46:45

我正在制作一个模拟时钟应用程序,该应用程序在一个应用程序中具有大约15种设计。设置设计的一种方法是为每个设计创建不同的设计,但这会使运行4.0 +的设备变得混乱。widgetconfigs.XML

我还想到了设置一个活动,允许使用

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

但这不会允许手绘可绘制物被设置...我还能做些什么?


答案 1

你实际上画了一次可绘制对象(当活动开始时),当然有一些动画和很多东西可以改变活动的外观,但不是可绘制对象,你可以为活动中的不同对象使用可绘制对象,比如每个按钮都有一个样式,但你不能重绘。

你有两种方法可以做这个项目:

1.使用单克隆

您可以进行15个不同的活动,并且通过意图,您可以在活动之间切换

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

2.使用代码

任何可以使用XL设计的东西也可以通过java代码编写。它需要更多的行,但它可以是动态的,这意味着你不必为每个条件做如果其他;您只需在每次需要时生成所需的对象即可。

例子:

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);


答案 2