gpt4 book ai didi

来自带有 9-patch 的代码的 Android ScaleAnimation 不起作用

转载 作者:太空狗 更新时间:2023-10-29 14:25:15 26 4
gpt4 key购买 nike

我有一个显示“登录”的按钮。当用户点击它时,它会弹出一个警告对话框,其中包含用户登录信息。一旦用户输入他们的信息并点击确定,按钮就会拉伸(stretch)到包含“欢迎,[用户名]”所需的宽度。我想要做的是将按钮的宽度从“登录”更改为“欢迎,[用户名]”。

我用 9-patch 制作了按钮背景,如果我在 xml 文件中指定不同的宽度,它会完美地工作。当我尝试将宽度从默认宽度更改为更长的宽度时,它只是像普通 .png 而不是 9.png 一样拉伸(stretch)。

这是我用来从一个静态宽度拉伸(stretch)到另一个静态宽度的代码:

<Button
android:id="@+id/signIn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/button_nine_patch"
android:textSize="20dip"
android:layout_marginBottom="-2dip" />

 ScaleAnimation stretch = new ScaleAnimation(1.0f ,10.0f, 1.0f, 1.0f);

this.signIn = (Button) this.findViewById(R.id.signIn);
this.signIn.setOnClickListener(this);

stretch.setDuration(2000);
signIn.startAnimation(stretch);

因为我不知道一个人的名字有多少个字母,所以我需要能够从代码中设置按钮的最终宽度。

我疯狂地搜索并浏览了所有 android 文档,但我就是找不到这个问题的答案。

如有任何帮助,我们将不胜感激。

最佳答案

当 Android 在 View 上执行动画处理时,它会为当前 View 的 Bitmap 表示而不是实际 View 设置动画。动画 View 需要处理 View 周围的组件,并且成本会高得多。虽然这通常是有益的,但在您的情况下,它会将 9patch 变成任何旧位图,因此不会给您想要的结果。

我不知道有什么方法可以只转换 View 的特定区域,这里有一个专门针对这个问题的问题:Stretch/Scale a Specific Region of View/Bitmap

关于来自带有 9-patch 的代码的 Android ScaleAnimation 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13200975/

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