更改AnalogClock小部件的大小?
问题描述:
我在我的活动布局中使用了内置的AnalogClock小部件。我想把它做大。调整layout_width和layout_height似乎没有什么区别。有没有简单的方法来做到这一点?更改AnalogClock小部件的大小?
<AnalogClock
android:id="@+id/analogClock"
android:layout_width="500dp"
android:layout_height="500dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
答
默认模拟时钟的拨号盘在HDPI中为231 * 231。即使您更多地提到AnalogClock的宽度和高度,这些图像也不会被拉伸。要显示更大的AnalogClock,请提供您自己的拨号盘和分钟手和小时针与自定义尺寸。
<AnalogClock
android:dial="@drawable/your_dial_pad"
android:hand_hour="@drawable/your_hour_hand"
android:hand_minute="@drawable/your_minutes_hand"/>
答
您还可以使用
android:scaleX="preferedScale"
和
android:scaleY="preferedScale"
与preferedScale
= 1,2,3,...,N
答
我发现以前的答案没”为我工作。我找到一个简单的解决方案只需为时钟背景创建您自己的自定义绘图,并设置android:dial
属性。你可以根据需要创建你的drawable。当然,如果你想让你的时钟看起来很漂亮,你必须创建两个小时和几分钟的drawable。你可以简单地默认绘制(S)复制到的地方,并用图像编辑器调整它们的大小:
<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" />
是否有程序化的方式来缩放用于小时,分钟和拨号的现有图像? – RobB
我不认为默认图像暴露在外面。更好的自定义图像与你自己的尺寸 – knvarma
我标记了这一点,因为实际上你可以缩放图像。有关scaleX/scaleY的使用,请参阅上述注释。不过,我注意到,如果您使用scaleX,则width和height的wrap_content不起作用,因此您必须在dp中设置widht/height以及缩放。上面的分数比例也适用于我。 –