写在前面:
昨天在淘宝上买了一本关于android开发的书,不过这本书真是坑爹啊,错误一大片,连我这顶级菜鸟都能看出来这么多的错误,这本书的质量就可想而知了,作者还曾经就职于国际it巨头,难道这年头没啥是真的了吗?it巨头的员工就这水平么?我当然不怀疑作者的水平,只是怀疑作者出书的目的:是为赚钱还是为了育人?很明显前者要多一些,所以造成了这本书的质量有点二,不过抱怨归抱怨,还是看吧,今天是学习的第一天,做些笔记。
1、文字标签TextView
要想在java代码里修改xml文件中定义的TextView中的内容,可以用setText()方法,具体为
public final void setText(CharSequence text)
public final void setText(int resId) //可以直接使用strings.xml中定义的字符串常量
public final void setText(char[] text,int start,int len)
CharSequence是一个接口,而String实现了这个接口,因此可以在setText()方法中传入一个字符串参数
TextView中的显示的内容不支持HTML标签,即如果字符串是html代码,那么TextView会原样显示出来
如果设置android:autoLink = "true" 则如果显示的字符串内有电话号码、邮箱或者网址时会加上超链接,点击会自动连接到默认的启动程序上。
如果要再xml中使用res中定义的颜色常量的话,须自己手动建立一个color.xml文件,大致的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name = "white">#ffffff</drawable>
<drawable name="orange">#ffff00</drawable>
</resources>
在xml中引用时,使用@drawable/white引用color.xml中定义的颜色常量
可以在java代码里用setBackgroundDrawable(Drawable drawable)设置一个组件的背景色,但是如何获取这个drawable对象呢?用以下代码获得:
Resources rescources = getResources();
Drawable drawable = rescources.getDrawable(R.drawable.white);
当然,获得其他的资源drawable同样也可以用这种方法
在Activity内直接调用String getString(R.string.app_name)返回资源id代表的字符串常量2
2、如何获取手机分辨率
通过下面一段代码可以获取手机的分辨率:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
dm.widthPixels //分辨率宽
dm.heightPixels //分辨率高
3、样式修饰文件
我们可以使用类似css样式的方法来制定xml文件里组件的样式,
新建一个style.xml文件,保存在values文件夹下,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name = "style_1">
<item name = "android:textSize">30sp</item>
<item name = "android:textColor">#ff0000</item>
<item name = "android:gravity">center</item>
</style>
</resources>
在组件xml文件中通过 style = "@style/style_1"来引用此修饰文件
//over :)