Android基于TitleBar页面导航实现

界面如下:

 Android基于TitleBar页面导航实现

实现如下:

 

 

 

package com.easyway.titlebar;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
/**
 * 自定义窗体标签的样式表格式的使用
 * 1.设置window标题信息
 *       requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); //声明使用自定义标题 
 *      setContentView(R.layout.main); 
 *       //设置窗体样式
 *      getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);//自定义布局赋值  
 * 2.在对应的Activity中添加相关的 android:theme="@style/test"管理对应的样式
 * 
 * 	  <activity android:name=".MainActivity" 
 * 	          android:theme="@style/test"> 
 * 	    <intent-filter> 
 * 	         <action android:name="android.intent.action.MAIN" /> 
 * 	         <category android:name="android.intent.category.LAUNCHER" /> 
 * 	    </intent-filter> 
 * 	 </activity>
 * 
 * @author longgangbai
 *
 */
public class AndroidTitleBarActivity extends Activity {
	private Button leftButton;
	private Button rightButton;
	
	  /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); //声明使用自定义标题 
        setContentView(R.layout.main); 
        //设置窗体样式
        getWindow().setFeatureInt(
        		Window.FEATURE_CUSTOM_TITLE,  //设置此样式为自定义样式
        		R.layout.title //设置对应的布局
        		);//自定义布局赋值 
        leftButton=(Button)findViewById(R.id.btnLeft);
        leftButton.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				 showDialog(R.id.btnLeft);      
			}
		});
        
        rightButton=(Button)findViewById(R.id.btnRight);
        
        rightButton.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				 showDialog(R.id.btnRight);      
			}
		});
   }
    /**
     * 
     */
	 protected Dialog onCreateDialog(int id) {      
	     //自定义对话框   
	     AlertDialog.Builder builder= new Builder(AndroidTitleBarActivity.this);   
	     //设置标题   
	     if(id==R.id.btnLeft){
	    	 builder.setTitle("故障返回主界面");
	     }else if(id==R.id.btnRight){
	    	 builder.setTitle("故障信息发布");
	     }
	     //确定按钮的操作   
	     builder.setPositiveButton("确认",new OnClickListener(){   
	             @Override  
	             public void onClick(DialogInterface dialog, int which) {   
	                 //销毁对话框   
	                 dialog.dismiss();   
	                 AndroidTitleBarActivity.this.finish();   
	            }   
	     });   
	     //取消按钮的操作   
	     builder.setNegativeButton("取消",new OnClickListener(){   
	         @Override  
	         public void onClick(DialogInterface dialog, int which) {   
	             dialog.dismiss();   
	        }   
	     });   
	     return builder.create();   
	 }   
	
  
}

 

titlebar的内容如下:

 

 

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    
     <Button 
         android:id="@+id/btnLeft" 
         android:text="返回" android:textSize="15.0sp"
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_marginLeft="12.0dip" 
         android:layout_alignParentLeft="true" 
         android:layout_centerVertical="true" />
    <Button 
         android:id="@+id/btnRight" 
         android:text="发布" android:textSize="15.0sp"
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_marginRight="12.0dip" 
         android:layout_alignParentRight="true" 
         android:layout_centerVertical="true" />
    <TextView android:textSize="22.0sp" 
         android:textColor="#ffffffff"
          android:ellipsize="middle"
           android:gravity="center_horizontal" 
           android:id="@+id/btntitle"
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:text="故障管理" android:singleLine="true" android:layout_toLeftOf="@+id/btnRight" android:layout_toRightOf="@+id/btnLeft" android:layout_centerInParent="true" android:layout_alignWithParentIfMissing="true" >
    </TextView>
</RelativeLayout>

 

 

 

 

 

 

 

 

android布局属性详解

RelativeLayout用到的一些重要的属性: 

 

    第一类:属性值为true或false 
    android:layout_centerHrizontal  水平居中 
     android:layout_centerVertical   垂直居中 
    android:layout_centerInparent    相对于父元素完全居中 
    android:layout_alignParentBottom 贴紧父元素的下边缘 
    android:layout_alignParentLeft   贴紧父元素的左边缘 
    android:layout_alignParentRight  贴紧父元素的右边缘 
    android:layout_alignParentTop    贴紧父元素的上边缘 
    android:layout_alignWithParentIfMissing  如果对应的兄弟元素找不到的话就以父元素做参照物 

    第二类:属性值必须为id的引用名“@id/id-name” 
    android:layout_below      在某元素的下方 
    android:layout_above      在某元素的的上方 
    android:layout_toLeftOf   在某元素的左边 
    android:layout_toRightOf  在某元素的右边 

    android:layout_alignTop   本元素的上边缘和某元素的的上边缘对齐 
    android:layout_alignLeft  本元素的左边缘和某元素的的左边缘对齐 
    android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐 
    android:layout_alignRight  本元素的右边缘和某元素的的右边缘对齐 

    第三类:属性值为具体的像素值,如30dip,40px 
    android:layout_marginBottom              离某元素底边缘的距离 
    android:layout_marginLeft                   离某元素左边缘的距离 
    android:layout_marginRight                 离某元素右边缘的距离 
    android:layout_marginTop                   离某元素上边缘的距离 


EditText的android:hint 

设置EditText为空时输入框内的提示信息。 

android:gravity  
android:gravity属性是对该view 内容的限定.比如一个button 上面的text.  你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右 

android:layout_gravity 
android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity="right"则button靠右 

android:layout_alignParentRight
 
使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。 

android:scaleType: 
android:scaleType是控制图片如何resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义区别: 

CENTER /center  按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示 

CENTER_CROP / centerCrop  按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽) 

CENTER_INSIDE / centerInside  将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽 

FIT_CENTER / fitCenter  把图片按比例扩大/缩小到View的宽度,居中显示 

FIT_END / fitEnd   把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置 

FIT_START / fitStart  把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置 

FIT_XY / fitXY  把图片不按比例扩大/缩小到View的大小显示 

MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。 

** 要注意一点,Drawable文件夹里面的图片命名是不能大写的。