App启动时白屏&使用BitmapDrawable解决启动页背景图片拉伸

一,App启动时,会白屏或者黑屏,采用如下方法解决:

1.启动页的Activity设置style

        
            
                

                
            
        

2. Activity样式 Theme.Start 代码如下:

 

问题:如果没有启动页Activity,给Application设置background是不是也可以去掉白屏呢?

二,BitmapDrawable解决启动页背景图片拉伸

上面的background属性为一张启动页图片,发现在pad上显示启动页的图片会拉伸变形。ImageView可以通过ScaleType属性设置图片src的缩放模式,可惜activity的background没有类似设置缩放模式属性。

但是我们可以从图片下手(一开始使用.9图片,但是小米pad(android4.4.4)上splash页面就缩小了,不知道为什么,可能哪里操作有误或者不兼容。)使用BitmapDrawable,对原来的图片进行包装,来解决图片拉伸问题。

BitmapDrawable 知识参考: https://blog.csdn.net/u014005316/article/details/53509179

代码如下 splash_bg.xml:



    
    
    
    
    
    
    
    

将Theme.Start的background属性值改为splash_bg。

注意:背景图片splash_bg设置给background属性后,需要再给windowBackground设置为图片的底色。因为背景图片splash_bg是多大显示多大,不会拉伸,周围未填充的区域会是有白色或黑色。

修改后的Theme.Start,代码如下:

   

缺点:在pad上,原来是启动时背景图片拉伸变形了,感觉不是很好。现在使用BitmapDrawable后,图片会保持自身大小不变。不会变形。但是同一张背景图,在手机上看挺好的;在大屏幕pad上,显得很小,感觉也不是很好。

@drawable/splash splash是原图片,拉伸变形。

@drawable/splash_bg splash_bg是BitmapDrawable,保持自身大小不变。

问:有没有办法像ios那样,手机和pad使用不同的启动图呢?

关于适配:dimen是根据设备的像素密度改变控件实际px值,这里通过background属性设置的背景图片,大小相当于是match_parent,没办法指定大小,怎么办? :(

 

你可能感兴趣的:(bug记录)