更改AnalogClock小部件的大小?

4

我在我的Activity布局中使用内置的AnalogClock小部件。 我想让它更大。 调整layout_width和layout_height似乎没有任何区别。 有没有简单的方法可以实现这一点?

<AnalogClock
    android:id="@+id/analogClock"
    android:layout_width="500dp"
    android:layout_height="500dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" />
3个回答

3
您也可以使用。
android:scaleX="preferedScale"

并且。
 android:scaleY="preferedScale"

preferedScale = 1,2,3 ... n 时


3

默认的模拟时钟中的表盘大小为231 * 231(高清晰度)。即使您提供的AnalogClock的宽度和高度更大,这些图像也不会被拉伸。如果想要显示更大的模拟时钟,请使用自定义尺寸的表盘、分针和时针。

        <AnalogClock
           android:dial="@drawable/your_dial_pad"
           android:hand_hour="@drawable/your_hour_hand"
           android:hand_minute="@drawable/your_minutes_hand"/>

有没有一种编程方式来缩放用于小时、分钟和表盘的现有图像? - RobB
我认为默认图像并没有被公开在外。最好使用自定义图像,并具有您自己的尺寸。 - knvarma
我将此标记下来,因为实际上您可以缩放图像。请参见上面的评论以了解scaleX / scaleY的用法。但是,我注意到如果使用scaleX,则宽度和高度的wrap_content不起作用,因此您必须在dp中设置宽度/高度以及比例。分数比例在上述情况下也适用于我。 - steven smith

0
我发现之前的答案对我没有用。我找到了一个简单的解决方案。只需为时钟的背景创建自定义可绘制对象,并设置android:dial属性即可。您可以根据需要创建尽可能大的可绘制对象。当然,如果您想让时钟看起来漂亮,您还必须为小时和分钟创建两个可绘制对象。您可以将默认的可绘制对象复制到其他地方,并使用图像编辑器调整其大小。
<AnalogClock
        android:id="@+id/AnalogClock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:dial="@drawable/widgetdial_big"
        android:hand_hour="@drawable/widgethour_big"
        android:hand_minute="@drawable/widgetminute_big" />

如果你在开发一个小部件,你必须像这样声明AppWidgetProviderInfo(例如300dip):

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:initialLayout="@layout/widget"
    android:minHeight="300dip"
    android:minWidth="300dip"
    android:updatePeriodMillis="0" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接