android 布局分为LinearLayout TableLayout RelativeLayout FreamLayout AbsoluteLayout.
常用的有LinearLayout,TableLayout,RelativeLayout ,这几个布局不会应该手机屏幕大小而有变化。通常我们使用HVGA 大小的屏幕(320*480).
接下来我们学习RelativeLayout.
原文引入找不到了。这里记录一下。
看一下效果图吧。
还有两个常用组件的图片。
main.xml代码如果
<?xml version="1.0" encoding="utf-8"?>
<!-- 相对布局 一个控件相对于另一个控件或者容器的位置。 -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/describe_view" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:textColor="#556055" /> <!-- 这个TextView相对于上一个TextView 在 它的下方所以设置属性为layout_below--> <TextView android:id="@+id/username_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="12dp" android:text="@string/username" android:textColor="#556055" android:layout_below="@id/describe_view" /> <EditText android:id="@+id/username_edit" android:layout_width="90dp" android:layout_height="40dp" android:layout_marginTop="4dp" android:layout_toRightOf="@id/username_view" android:layout_below="@id/describe_view" /> <TextView android:id="@+id/sex_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="12dp" android:text="@string/sex" android:textColor="#556055" android:layout_below="@id/describe_view" android:layout_toRightOf="@id/username_edit" /> <RadioGroup android:id="@+id/sex_radiogroup" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/sex_view" android:layout_below="@id/describe_view" > <!--第一个RadioButton --> <RadioButton android:id="@+id/male_radiobutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" android:checked="true" /> <!--第二个RadioButton --> <RadioButton android:id="@+id/woman_radiobutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女" /> </RadioGroup> <TextView android:id="@+id/age_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="25dp" android:text="@string/age" android:textColor="#556055" android:layout_below="@id/username_view" /> <EditText android:id="@+id/brithday_edit" android:layout_width="90dp" android:layout_height="40dp" android:layout_marginTop="4dp" android:hint="@string/selectdate" android:textSize="13sp" android:gravity="center" android:editable="false" android:layout_toRightOf="@id/age_view" android:layout_below="@id/username_edit" /><TextView android:id="@+id/education_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="25dp" android:text="@string/education" android:textColor="#556055" android:layout_below="@id/sex_view" android:layout_toRightOf="@id/brithday_edit" /> <!-- 下拉列表控件 --> <Spinner android:id="@+id/edu_spinner" android:layout_width="108dp" android:layout_height="38dp"android:prompt="@string/prompt" android:entries="@array/entries"android:layout_below="@id/sex_radiogroup" android:layout_toRightOf="@id/education_view" /> <TextView android:id="@+id/interest_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="25dp" android:text="@string/interest" android:textColor="#556055" android:layout_below="@id/age_view" /> <!-- 复选框控件 --> <CheckBox android:id="@+id/car_check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/car" android:textColor="#566156" android:layout_toRightOf="@id/interest_view" android:layout_below="@id/brithday_edit" /> <CheckBox android:id="@+id/sing_check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="11dp" android:text="@string/sing" android:textColor="#566156" android:layout_toRightOf="@id/car_check" android:layout_below="@id/brithday_edit" /> <CheckBox android:id="@+id/movie_check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="11dp" android:text="@string/movie" android:textColor="#566156" android:layout_toRightOf="@id/sing_check" android:layout_below="@id/brithday_edit" /> <Button android:layout_width="100dp" android:layout_height="40dp" android:text="@string/notify"android:id="@+id/notity"android:layout_marginLeft="20dp" android:layout_marginTop="15dp" android:layout_below="@+id/sing_check"/><Button android:id="@+id/submit_button" android:layout_width="100dp" android:layout_height="40dp" android:text="@string/submit" android:gravity="center" android:layout_below="@id/movie_check" android:layout_marginLeft="210dp" android:layout_marginTop="15dp" /> </RelativeLayout>
string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="hello">Hello World, LayoutDemoActivity!</string><string name="app_name">LayoutDemo</string><string name="username">用 户:</string><string name="sex">性别:</string><string name="selectdate">出生日期</string><string name="education">学历:</string><string name="interest">爱 好:</string><string name="age">年 龄:</string><string name="car">汽车</string><string name="sing">唱歌</string><string name="movie">电影</string><string name="submit">提交</string><string name="prompt">学历</string><string-array name="entries"><item>本科</item><item>专科</item><item>研究生</item><item>硕士</item><item>博士</item></string-array><string name="notify">通知</string><string name="content">Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。 2010年末数据显示,仅正式推出两年的操作系统的Android已经超越称霸十年的诺基亚Symbian系统,跃居全球最受欢迎的智能手机平台。Android的主要竞争对手是苹果的IOS,微软的WP7以及RIM的Blackberry OS。</string>
</resources>
又下主要代码的实现,有一个通知的代码。
package com.hkrt.action;import java.util.Calendar;import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.Toast;public class LayoutDemoActivity extends Activity {private EditText brithdayEditText = null; EditText userName;RadioButton male;RadioButton woman;Spinner sEducation;String sex=null;CheckBox car,sing,movie;//爱好StringBuffer hobby = new StringBuffer();@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);brithdayEditText =(EditText) this.findViewById(R.id.brithday_edit);brithdayEditText.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Calendar c = Calendar.getInstance();new DatePickerDialog(LayoutDemoActivity.this,new DatePickerDialog.OnDateSetListener(){@Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {brithdayEditText.setText(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);}},c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH)).show();}});userName =(EditText)this.findViewById(R.id.username_edit);male =(RadioButton)this.findViewById(R.id.male_radiobutton);woman =(RadioButton)this.findViewById(R.id.woman_radiobutton); sEducation =(Spinner)this.findViewById(R.id.edu_spinner);car = (CheckBox)this.findViewById(R.id.car_check);sing =(CheckBox) this.findViewById(R.id.sing_check);movie = (CheckBox)this.findViewById(R.id.movie_check);Button buttonSub = (Button)this.findViewById(R.id.submit_button);buttonSub.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(userName.getText().toString().trim().length()==0){Toast toast = Toast.makeText(getApplicationContext(), "用户名不能为空", 0);toast.setGravity(Gravity.CENTER, 0, 0);View toastView = toast.getView();ImageView image = new ImageView(LayoutDemoActivity.this);image.setImageResource(R.drawable.icon1);LinearLayout ll = new LinearLayout(LayoutDemoActivity.this);ll.addView(image);ll.addView(toastView);toast.setView(ll);toast.show();}else{if(male!=null){sex=male.getText().toString();}else{sex=woman.getText().toString();}if(car.isChecked()){hobby.append(car.getText()).append("|");} if(sing.isChecked()){hobby.append(sing.getText()).append("|");} if(movie.isChecked()){hobby.append(movie.getText());}Toast.makeText(getApplicationContext(), userName.getText() +""+ sex+""+ brithdayEditText.getText()+""+sEducation.getSelectedItem().toString()+""+hobby.toString(), 0).show();System.out.println("结果"+userName.getText() +""+ sex+""+ brithdayEditText.getText()+""+sEducation.getSelectedItem().toString()+""+hobby.toString());}}});/**通知的demo示例*/Button notityBut = (Button)this.findViewById(R.id.notity);notityBut.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(LayoutDemoActivity.this,OtherActivity.class);PendingIntent contentIntent = PendingIntent.getActivity(LayoutDemoActivity.this, 0, intent, 0);Notification notify = new Notification();notify.icon=R.drawable.icon1;//notify.sound=Uri.parse("file:///sdcard/Crazy.mp3");notify.tickerText="启动otherActivity通知";notify.when=System.currentTimeMillis();notify.defaults=Notification.DEFAULT_SOUND;notify.defaults=Notification.DEFAULT_ALL;notify.setLatestEventInfo(LayoutDemoActivity.this, "普通通知", "点击查看", contentIntent);NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);manager.notify(0, notify);}});}
}
注:通知是打开另一个activity,