Mat*_*t D 2 android widget android-widget
我不确定这是否可行,我找不到基于它的主题,但是如果它已被回答之前给我一个链接,那就是那个.
我现在要做的是调整一些默认的Android小部件,特别是DatePicker和TimePicker,以便在Activity中使用.但据我所知,修改Picker(沿负方向)的宽度或高度的唯一结果是导致裁剪视图,而不是窗口小部件的缩放/拉伸视图.
我对自己的自定义小部件持开放态度,但我真的更喜欢让这个项目尽可能简单和干净,尽可能地匹配Android OS UI,因此使用本机DatePicker和TimePicker似乎是一个合乎逻辑的选择对我来说.如果有人知道如何缩小这些小部件而不是裁剪它们,我真的很感激.
谢谢.
这是一个非常糟糕的黑客,但它应该工作:创建一个新的视图扩展LinearLayout,覆盖方法getChildStaticTransformation和setStaticTransformationsEnabled显式true.
在该方法中,getChildStaticTransformation您可以操纵转换参数以缩小扩展LinearLayout的所有内容.
然后添加DatePicker或其他东西作为此视图的孩子.
例如:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5443 次 |
| 最近记录: |