gpt4 book ai didi

android - 调整大小/缩小 Android 小部件(DatePicker 和 TimePicker)

转载 作者:搜寻专家 更新时间:2023-11-01 07:40:35 25 4
gpt4 key购买 nike

我不确定这是否可行,而且我找不到基于它的主题,但如果在给我一个链接之前有人回答了它,就可以了。

我现在要做的是调整一些默认 Android 小部件的大小,特别是 DatePicker 和 TimePicker,以便在 Activity 中使用。但据我所知,修改任一选择器的宽度或高度(沿负方向)的唯一结果会导致裁剪 View ,而不是小部件的缩放/拉伸(stretch) View 。

我对我自己的自定义小部件持开放态度,但我真的更愿意让这个项目尽可能简单和干净,尽可能匹配 Android 操作系统用户界面,所以使用 native DatePicker 和 TimePicker 看起来像对我来说是合乎逻辑的选择。如果有人知道如何缩小而不是裁剪这些小部件,我将不胜感激。

谢谢。

最佳答案

这是一个非常糟糕的 hack,但它应该有效:创建一个扩展 LinearLayout 的新 View ,覆盖方法 getChildStaticTransformationsetStaticTransformationsEnabled 显式为 true

在方法 getChildStaticTransformation 中,您可以操纵转换参数来缩小扩展的 LinearLayout 的所有内容。

然后添加 DatePicker 或其他东西作为该 View 的子项。

如:

 public class ZoomView
extends LinearLayout
{

private float sf = 1f;

public ZoomView(final Context context, final AttributeSet attrs)
{
super(context, attrs);
setStaticTransformationsEnabled(true);
}

public ZoomView(final Context context)
{
super(context);
setStaticTransformationsEnabled(true);
}

public void setScaling(final float sf)
{
this.sf = sf;
}

@Override
protected boolean getChildStaticTransformation(final View child, final Transformation t)
{
t.clear();
t.setTransformationType(Transformation.TYPE_MATRIX);
final Matrix m = t.getMatrix();
m.setScale(this.sf, this.sf);
return true;
}

}

关于android - 调整大小/缩小 Android 小部件(DatePicker 和 TimePicker),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4261527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com