Android开发中遇到的坑


layout: post
title: Android开发中遇到的坑
date: 2015-05-26
categories: blog
tags: [Android,Bug]
category: Android
description: 收集在开发过程中折腾很久的问题,避免在一个坑里多次摔跤


Dialog Theme
一般App都含有至少两套主题,因此需要在代码中动态切换,

@Override
protected void onCreate(Bundle savedInstanceState) {
    setTheme(isLight?R.style.AppTheme.Light:R.style.AppTheme.dark);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_activity2);
}

就好像上面的代码,但是对于一个Activity Dailog貌似有了点问题

Dialog之外的部分是黑色..需求是要半透明啊,不管如何调整style的属性都没有用..

解决方案:先在mainifest中声明一个主题(light or Dark都 ok)

   

然后运行就会有半透明的效果了


Background和WindowBackground
windowbackground是用来设置Activity或者Dialog的背景颜色,而Background是设置视图组件的背景,view的背景会覆盖掉activity/dialog的背景.默认View的背景是透明的,即显示效果就是windowbackground

当给Dialog设置一个圆角背景时,同时也需要修改自定义的Title部分的背景,导致title部分的背景覆盖掉了圆角效果.

解决方案:为Title部分设置同样的圆角背景


Crunching Cruncher ###.png failed, see logs
在Android Studio中编译后始终出现该错误

Error:Execution failed for task ':app:mergeDebugResources'.
Crunching Cruncher ic_launcher.png failed, see logs

开始尝试StackOverflow中讲的Clean And Rebuild,Restart AS,都没有效果,后来在AS中查看对应的图片,竟然提示

try to open it externally to fix format problem

所以导致这个问题的原因就是图片的格式不对,也许你就仅仅把.jpg的后缀改为了.png,但是图片的格式实际仍是.jpg

你可能感兴趣的:(Android开发中遇到的坑)