gpt4 book ai didi

java - setLayoutParams 第二次不起作用

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

我编写了以下代码,首先增加 ImageView 的大小,然后在 100 毫秒后减小同一 ImageView 的大小。然而,这段代码增加了 ImageView 的大小,但并没有减小它的大小,或者延迟 100 毫秒后的代码不会影响 imageView 的尺寸。

我做错了什么?

uiHandler.post(new Runnable()
{
@Override
public void run()
{
FrameLayout.LayoutParams layout = (android.widget.FrameLayout.LayoutParams) imageView.getLayoutParams();
layout.height = (int) (2*iconsSizeInDP);
layout.width = (int) (2*iconsSizeInDP);
imageView.setLayoutParams(layout);
try
{
Thread.sleep(50);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show();
// following code block doesnt'affect imageView dimensions
layout.height = (int) iconsSizeInDP;
layout.width = (int) iconsSizeInDP;
imageView.setLayoutParams(layout);
}
});

问候

最佳答案

您在同一 UI 线程中更改布局 2 次,因此只有最后一次更改才能生效。您应该像这样分离到 2 个 UI 线程:

uiHandler.post(new Runnable()
{
@Override
public void run()
{
FrameLayout.LayoutParams layout = (android.widget.FrameLayout.LayoutParams) imageView.getLayoutParams();
layout.height = (int) (2*iconsSizeInDP);
layout.width = (int) (2*iconsSizeInDP);
imageView.setLayoutParams(layout);
}
};
uiHandler.postDelayed(new Runnable()
{
@Override
public void run()
{
Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show();
// following code block doesnt'affect imageView dimensions
layout.height = (int) iconsSizeInDP;
layout.width = (int) iconsSizeInDP;
imageView.setLayoutParams(layout);
}
},50);

关于java - setLayoutParams 第二次不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21086859/

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