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

问题描述:

我不确定这是否可能,并且我找不到基于它的主题,但是如果在回答之前给我一个链接,那将是那。调整大小/缩小Android小部件(DatePicker和TimePicker)

我现在想要做的是调整一些默认Android窗口小部件,特别是DatePicker和TimePicker,以便在Activity中使用。但据我所见,修改选择器的宽度或高度(负方向)的唯一结果是裁剪视图,而不是缩放/拉伸的控件视图。

我对我自己的自定义小部件开放,但我真的希望保持此项目尽可能简单和干净,尽可能匹配Android操作系统UI,因此使用本机DatePicker和TimePicker似乎这对我来说是合乎逻辑的选择。如果有人知道如何缩小这些小部件而不是裁剪它们,我会非常感激。

谢谢。

这是一个非常糟糕的黑客,但它应该工作: 创建扩展LinearLayout一个新的观点,覆盖方法getChildStaticTransformationsetStaticTransformationsEnabled明确到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; 
} 

} 
+1

嗯......这是相当显着的,这样做的更好的方法不存在的地方。非常感谢帮助印象。我会尽快给它一下,但我认为这将是我处理的后续代码之一,在其他事情更加稳定之后。似乎值得等待,哈哈...... – 2010-11-29 20:56:26