gpt4 book ai didi

android - 关于为 Android 创建自定义布局的教程?

转载 作者:太空狗 更新时间:2023-10-29 13:40:31 24 4
gpt4 key购买 nike

我已经无计可施了,希望有人能提供解决方案。

我想为 Android 应用程序创建自定义布局。这在理论上应该足够直接,但我找不到关于如何这样做的有用信息。

我正在寻找:1) 一个简单的分步教程,介绍如何子类化 ViewGroup 以创建自定义布局。2) 基本了解内部机制,例如,如何访问 subview 、如何以及何时要求 subview 自己绘制、如何为自定义布局定义 xml、如何访问自定义 xml 属性等。

我在网上找遍了,只能找到一些小花絮,甚至无法开始创建子类。

我找到了1) 在 http://parleys.com/#id=2191&sl=3&st=5 发表的演讲但几分钟后请求订阅就中断了。2) API 引用 http://developer.android.com/reference/android/view/ViewGroup.html但这并没有提供任何关于如何实际实现子类的线索。

最佳答案

我找到了这个。白白复杂了。

Tutorial

android 支持中不再有绝对布局。我只想 setX 方法。 FrameLayout 是最好的选择。也看看: stackoverflow answer

FrameLayout 允许您设置类似于 absolute 的位置和尺寸。如果你想更深入,你需要使用下一个方法:

//对于 x 和 y 你可以使用 onCreate

//设置宽度和高度的最佳方式 - 使用 post //post 方法表示 UI 已准备就绪

  VEIW_MAIN = (ViewGroup) findViewById(R.id.activity_main);

VEIW_MAIN.post(new Runnable() {
@Override
public void run() {

LayoutParams paraBigText = BigText.getLayoutParams();
Double d24 = 200.0;
paraBigText.width = d24.intValue();
BigText.setLayoutParams(paraBigText);
BigText.setGravity( Gravity.CENTER_HORIZONTAL);

}
});

...

ViewTreeObserver vto = SOME_ELEMENT.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener()
{
public boolean onPreDraw() {

// changes here
return true;
}
});

...

如果你需要一些修复,使用这个:

 if (EKRAN.WIDTH() <= 480)
{
FIX_FOR_480_WIDTH();
}
else if (EKRAN.WIDTH() == 540) {
FIX_FOR_540_WIDTH();
}
else if (EKRAN.WIDTH() == 720) {
FIX_FOR_720_WIDTH();
}
else if (EKRAN.WIDTH() == 1080) {
FIX_FOR_1080_WIDTH();
}

...

 void FIX_FOR_540_WIDTH()
{
System.out.println("FIX FUNCTION FOR 540 low width !!!!!!!");
SOMEELEMENT.setY( 0.865f * EKRAN.HEIGHT() );
}

...

从以下位置复制 SCREEN 类: Set position by percent - Android DisplayMetrics

换句话说,如果您真的想要完整的自定义订单,那么您可以使用 canvas2d 并创建自己的 uniq UI ...

关于android - 关于为 Android 创建自定义布局的教程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6387685/

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