今天做安卓设计,正在学习布局。在过程中遇到了几个小问题,感觉非常有必要记录分享出来。
1.string字符串不要出现"that's" ,要使用“that is”要不然会报错.
2.设置图片大小时,注意dp比px更好一些。
下面是百度经验的解释:dp也就是dip,这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。(链接:http://jingyan.baidu.com/article/d621e8da058a1a2865913f2a.html)
3.布局文件的文件名避免大写,要不然R文件丢失。
4.调用R资源文件时候,前面加上android是调用Android系统资源,否则需要用户自定义资源。
5.出现Android Call requires API level 11 (current min is 8)报错,原因就是API版本问题。
解决措施:右键点击项目->Android tools ->Clear Link Markers.即可临时解决,但是如果调试用的模拟器是低版本的,则在调试完后还有这个错误。
如果把manifest文件中的user-sdk的android:minSdkVersion改为报错的那个高版本就没事。比如下面:
<uses-sdk
android:minSdkVersion=”11″ //这个之前是8
android:targetSdkVersion=”17″ />
引用:http://www.aitinan.com/3879.html
6.复制工程的注意事项。
问题描述:在一个project中做好一个模块,然后把这个项目添加到另外一个项目。项目包括各种图片、布局、包等资源。直接复制后添加到另一个项目出现R中的资源无法识别问题。
解决:引入另外一个项目中的R,比如我本来的项目的第一个包为com.olive.new.test1;目标项目的第一个包为com.olive.new.test2;那么,在第一个项目的所有类中加入com.olive.new.test1.R问题解决。
引用:http://blog.sina.com.cn/s/blog_6831375f0100xwra.html
7.出现premature end of file.错误提示
解决:用eclipse要常常保存,保存一下就好了。(注:eclipse不会自动保存)
8. 区分fill_parent和wrap_content
fill_parent设置一个顶部布局或控件强制性让自身布满整个屏幕。
wrap_content布局指根据视图内部内容自动扩展自身以适应内容大小。