在某些设备上查看外观/消失是正常的,而不是在其他设备上

zearum 发布于 5 天前 android 最后更新 5 天前 0 浏览

我很难解决这个问题: 我编写了一个应用程序,允许用户摆脱屏幕上的一些彩色方块。在我的班的coloredSquare中,我有一个像这样的方法:

public void appearance(){
    setLayoutParams(new RelativeLayout.LayoutParams(side/ 10, side/ 10));
final int[] count = {1};
    final Runnable run = new Runnable() {
        @Override
        public void run() {
            setLayoutParams(new RelativeLayout.LayoutParams(count[0] * side/ 50, count[0] * side/ 50));//View grows of 1/50 of its final size
            if (count[0] < 50){
                handler.postDelayed(this, 20);
            } else {
                setClickable(true);//When done
            }
            count[0]++;
        }
    };
    handler = new Handler();
    handler.postDelayed(run, 10);
}
在我的三星Galaxy S4 mini上运行时,它工作正常。 但是,例如,它不适用于Wiko高速公路4G或模拟器1080x1920,我不明白为什么。 当我说这不起作用时:视图出现并增长,但当它增长时,postDelayed之前的每个小视图都停留在那里。 当我尝试通过点击它使它们消失时,它缩小得很好,但所有其他更大的视图(在postDelayed之前)也停留在那里。 如果你不明白,你会在下面的计时器。 在此期间,我得到了一个非常简单的计时器:
final java.util.Timer t = new java.util.Timer();
            t.scheduleAtFixedRate(new TimerTask() {
                @Override
                public void run() {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            if(termine){
                                t.cancel();
                            }
if(seconds == 0){
                                vCoul.setText(String.valueOf(minutes) + ":00");
                            } else if (seconds < 10) {
                                vCoul.setText(String.valueOf(minutes) + ":0" + String.valueOf(seconds));
                            } else {
                                vCoul.setText(String.valueOf(minutes) + ":" + String.valueOf(seconds));
                            }
seconds -= 1;
if(seconds == -1){
                                seconds = 59;
                                minutes=minutes-1;
                            }
}
                    });
                }
            }, 0, 1000);
但是,每一秒钟,新的时间都与前一个重叠。 对不起,很长的帖子,在此先感谢您的回答!
已邀请:

modit

赞同来自:

我几个月前就想到了这一点,但我希望这个答案会对其他人有所帮助。 我没有在大多数三星设备上放置活动的任何背景,因为三星处理好的无背景活动没有问题。 虽然,在几个Wiko和Archos设备上,你必须放置一个背景(如背景:#000000),这样你就可以顺利地移动视图。