[仿南航app开发日记8]解决部分bug

来源:互联网 发布:淘宝750海报图片 编辑:程序博客网 时间:2024/06/05 14:15

透明进度条bug

我的透明进度条原理是不断重绘一个背景图片,然后使用Matrix旋转图片,原先的代码是死循环,代码如下:

      protected Void doInBackground(Void... params) {            while( true ) {                try {                    Thread.sleep(100);                } catch(InterruptedException e) {                    e.printStackTrace();                }                publishProgress();            }            return null;        }

这样就有一个bug,因为是死循环,当ProgressDialog被dismiss掉之后这个循环并不会销毁,而是一直在循环,这样造成的一个bug就是使用了透明进度条之后侧滑菜单点击就没有反应了,并且,透明进度条在Activity下次启动并不会有旋转的效果,这里修改的办法是将这个while(true)改成用变量判断:

 while( mLoop ) 

然后重写ProgressDialog的dismiss()方法:

    public void dismiss() {        super.dismiss();        mProgressView.setLoop(false);    }

这样在这个ProgressDialog被销毁之后,将这个循环也关掉。

透明进度条在小米手机上显示黑屏背景

这个透明进度条在使用了style去除背景之后在有些手机上显示正常,但是在小米手机显示黑屏:
这里写图片描述
经过一番排查,原先设置的那个主题有问题:

 <style name="LoginDialogTheme" parent="Theme.AppCompat.DayNight.Dialog">        <item name="android:windowTitleStyle">@null</item>        <item name="android:windowBackground">@null</item>    </style>

修改成如下这样才行:

    <style name="LoginDialogTheme" parent="Theme.AppCompat.DayNight.Dialog">        <item name="android:windowNoTitle">true</item>        <item name="android:windowBackground">@color/progressColor</item>    </style>colors.xml<color name="progressColor">#0000</color>

效果如下:
这里写图片描述
完美解决

0 0
原创粉丝点击