做Android也有三个星期了,但还没有做项目,一直在做一个练习的Android英语词典,在做的过程中也
遇到过很多问题,今天就来总结一下;因为问题比较多,就分类来总结吧……首先刚开始做的时候,肯
定是做界面啦,不过英语词典里面有一个卡片模式,搞得我很蛋疼,,因为我只知道用LinearLayout,
而用LinearLayout做出那个效果真的有点难,所以我研究了几天,也做了很多尝试,后来终于做出来了
:
xml代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="@android:color/white"
android:cacheColorHint="#000000"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_width="match_parent"
android:gravity="center">
<TextView android:id="@+id/textView1"
android:textSize="30dip"
android:layout_height="60dip"
android:gravity="center"
android:textColor="#ffffff"
android:background="@color/cyan"
android:layout_width="fill_parent"
android:text="必备单词"/>
<LinearLayout android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_width="match_parent"
android:gravity="center">
<TextView android:id="@+id/textView2"
android:text="课程重点:"
android:textColor="#000000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Spinner android:id="@+id/spinner1"
android:layout_height="wrap_content"
android:entries="@array/bibei"
android:prompt="@string/srp_name"
android:layout_width="200dip" />
</LinearLayout>
<LinearLayout
android:layout_height="120dip"
android:orientation="vertical"
android:gravity="right"
android:layout_width="280dip">
<RelativeLayout
android:layout_height="120dip"
android:orientation="horizontal"
android:layout_width="280dip">
<TextView android:id="@+id/wordView2"
android:textColor="#000000"
android:textSize="30dip"
android:background="@drawable/bg_border"
android:gravity="center|center_vertical"
android:layout_width="280dip"
android:layout_height="match_parent"/>
<TextView android:id="@+id/sumView2"
android:text="0/0"
android:textColor="#000000"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/textView7"
android:layout_width="wrap_content"
android:visibility="gone"
android:layout_marginLeft="10dip"
android:textColor="#ffffff"
android:layout_height="wrap_content"
android:text=""/>
<ImageView android:id="@+id/imageView1"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="3dip"
android:layout_marginTop="3dip"
android:layout_width="wrap_content"
android:src="@drawable/qqqw"/>
<LinearLayout
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:gravity="center"
android:layout_width="280dip">
<ImageView android:id="@+id/imageShengyin"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:src="@drawable/suona"/>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_height="120dip"
android:orientation="horizontal"
android:gravity="center"
android:layout_width="280dip">
<TextView android:id="@+id/enpView2"
android:layout_height="match_parent"
android:textColor="#000000"
android:textSize="20dip"
android:background="@drawable/bg_border"
android:gravity="center|center_vertical"
android:text=""
android:layout_width="280dip"/>
<TextView android:id="@+id/textID"
android:layout_width="wrap_content"
android:visibility="gone"
android:layout_marginLeft="10dip"
android:textColor="#ffffff"
android:layout_height="wrap_content"
android:text=""/>
</LinearLayout>
<SeekBar android:id="@+id/seekbar"
android:layout_width="280dip"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:layout_width="match_parent">
<Button android:id="@+id/liubutton1"
android:layout_height="wrap_content"
android:text="自动浏览"
android:layout_width="wrap_content" />
<Button android:id="@+id/shangbutton1"
android:layout_height="wrap_content"
android:text="上一页"
android:layout_width="wrap_content" />
<Button android:id="@+id/xiabutton1"
android:layout_height="wrap_content"
android:text="下一页"
android:layout_width="wrap_content" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_width="match_parent">
<Button android:id="@+id/button1"
android:layout_height="wrap_content"
android:text="返回"
android:layout_width="80dip" />
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:layout_width="match_parent">
<TextView android:id="@+id/kabView2"
android:text="卡片模式"
android:textColor="#ffffff"
android:background="#2F4F4F"
android:gravity="center|center_vertical"
android:layout_width="160dip"
android:layout_height="40dip" />
<TextView android:id="@+id/lieView2"
android:text="列表模式"
android:textColor="#ffffff"
android:background="#2F4F4F"
android:gravity="center|center_vertical"
android:layout_width="160dip"
android:layout_height="40dip"/>
</LinearLayout>
</RelativeLayout>
有些命名什么的不规范,看得懂就行,界面也不好看,不过那是样式的问题了
灵活用LinearLayout和RelativeLayout嵌套使用,足可以应付你的界面了。比如你要一控件在你想要的
任何地方,用RelativeLayout的android:layout_marginTop(距离顶部多少多少)是可以,但界面不可
能就一个控件,有些控件不需要这样,当然就RelativeLayout绝对可以但很麻烦……所以我们可以给一
个LinearLayout让这个控件跟其他区域分清楚点,再在里面用RelativeLayout来布局,这样分块就会很
清晰。
好了,原先我的界面布出来了,在虚拟机里运行也很正常,但当我下到自己的手机安装的时候,哎呀!
那界面真是惨不忍睹啊,有些控件正常显示,有些被缩得跟头发一样(夸张了点),反正界面都变形了
……可以是做为Android新手的我不知道啊,后来问过前辈才知道……我用了
android:layout_height="50px" ,用px来定大小的话很容易出错,因为它是根据像素来的,比如你画
160px的线在480*800像素的手机上就是1/3长,那么在320*480的手机上就是一半长了,如果这样的话,
就很尴尬了……但Android里有一个dip,用这个的话,在不同的设备会有不同的效果,我把它理解成是
根据比例来的(个人这样理解);就说我觉得比较容易理解的吧反正这样用没错啦:dip把手机统一假设
为是320*480像素的,1dip=1px,如果把宽设为160dip那么就是频幕宽的一半,不管是在320*480像素的,
还是480*800像素的等等,它都是频幕宽的一半,高也是这样啊。
可能你觉得我的废话比较多,但是看完一件事件的经过,会让你可以举一反三(也是在告诫我自己)。