编辑:
在进行方法跟踪后,每当我用紫色方块切换时,图形会上升很多。当我用蓝色或绿色圆圈切换时,它会保持低位:
以下是与紫色方块交换的方法:
我有一个应用程序交换两个按钮。有一个红色按钮,当它被点击时,它从其他三个按钮中选择一个随机按钮,然后交换。
我尝试通过交换图像来做到这一点。在onClickListener中,我只使用带有红色按钮的按钮来监听点击。
如果这令人困惑......请留下。但是:
每当我将图像从较大的图像切换为较小的图像时,该过程需要更长的时间。在两个较小的图像之间交换时要快得多。我该如何解决。是否有一个最适合Android的图像大小?
这是布局代码:
https://gist.github.com/anonymous/813883bce89606d2a82e
正如你在图像中看到的那样,用蓝色圆圈比紫色方块交换背景图像需要花费更多(很多!)。为什么......?
为什么(根据图像尺寸,我只是更改图像并检查带红色图像的按钮的方式)较慢? 我应该使用什么图片尺寸?
非常感谢你的时间
答案 0 :(得分:2)
我的第一个猜测是你有一些需要很长时间才能加载的大型PNG。
但是,我们有很好的工具可以帮助我们真正找到答案 - 所以我们不必猜测!
在进行切换时,执行方法跟踪(在Android Studio的CPU选项卡中可用,或在Eclipse + ADT中的DDMS视图中),您应该看到花费时间的方法。
答案 1 :(得分:2)
我对你的问题没有确切的答案,只有2条建议:
1)确保在绘图前先缩放图像。
2)使用RelativeLayout会导致ViewGroup测量您的孩子两次而不是一次。因此,请确保您不会触发任何触发点击事件的重新布局
3)我建议您将这些View放在GridView或GridLayout中,然后当您需要交换视图时,只需在数据中交换视图的位置(例如,数组),然后调用notifyDataSetChanged() ; 希望这个帮助
答案 2 :(得分:2)