调整大小/缩小Android小部件(DatePicker和TimePicker)
问题描述:
我不确定这是否可能,并且我找不到基于它的主题,但是如果在回答之前给我一个链接,那将是那。调整大小/缩小Android小部件(DatePicker和TimePicker)
我现在想要做的是调整一些默认Android窗口小部件,特别是DatePicker和TimePicker,以便在Activity中使用。但据我所见,修改选择器的宽度或高度(负方向)的唯一结果是裁剪视图,而不是缩放/拉伸的控件视图。
我对我自己的自定义小部件开放,但我真的希望保持此项目尽可能简单和干净,尽可能匹配Android操作系统UI,因此使用本机DatePicker和TimePicker似乎这对我来说是合乎逻辑的选择。如果有人知道如何缩小这些小部件而不是裁剪它们,我会非常感激。
谢谢。
答
这是一个非常糟糕的黑客,但它应该工作: 创建扩展LinearLayout
一个新的观点,覆盖方法getChildStaticTransformation
和setStaticTransformationsEnabled
明确到true
。
在方法getChildStaticTransformation
中,您可以操作tranformation参数来缩小扩展的LinearLayout的所有内容。
然后添加DatePicker
或其他作为此视图的子项。
EG:
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;
}
}
嗯......这是相当显着的,这样做的更好的方法不存在的地方。非常感谢帮助印象。我会尽快给它一下,但我认为这将是我处理的后续代码之一,在其他事情更加稳定之后。似乎值得等待,哈哈...... – 2010-11-29 20:56:26