`
longgangbai
  • 浏览: 7343922 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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文件夹里面的图片命名是不能大写的。

 

分享到:
评论

相关推荐

    Android-Android自定义TitleBar

    本文将深入探讨如何在Android中实现自定义TitleBar,并结合提供的文件"lushan123456-TitleBarView-3f3a8ec"进行讲解。 首先,让我们了解Android原生TitleBar。在Android API 21及以上版本,系统默认提供了Toolbar...

    Android自定义titlebar中设置progressbar

    在Android应用开发中,标题栏(titlebar)是应用程序界面中的一个重要组成部分,它通常用于显示应用的名称或当前页面的标题。然而,标题栏也可以进行自定义,以满足更多的功能需求,比如添加一个进度条(progressbar...

    Android改写TitleBar

    在Android开发中,TitleBar(也称为ActionBar或Toolbar)是应用程序顶部的标准组件,通常用于显示应用的名称、图标以及提供导航和操作功能。在Android设计规范中,TitleBar被用作用户界面的一部分,以增强用户体验。...

    android_自定义TitleBar

    在Android应用开发中,TitleBar通常指的是位于应用界面顶部,用于显示应用名称、操作按钮等信息的区域。自定义TitleBar是为了满足个性化需求,提供更丰富的功能和视觉效果。本教程将详细介绍如何在Android项目中封装...

    Android代码-android-titlebar

    开发过程中,如果页面过多,需要构建大量重复的标题栏布局,浪费开发时间且不利于后期维护。本项目总结了几种常用的使用场景,将标题栏封装成控件,Java代码实现,对当前主流的沉浸式提供了支持,供有需要的同学使用...

    android TitleBar

    首先,我们需要理解Android系统中的TitleBar有两种实现方式:原生的ActionBar和Material Design的ToolBar。对于API 21及以上的设备,推荐使用ToolBar,因为它提供了更丰富的定制选项和更好的设计兼容性。 1. **...

    titlebar实现

    在Android中,你可以通过自定义`Window`的`DecorView`来实现自定义Titlebar。你可以创建一个新的`LinearLayout`或`FrameLayout`作为根布局,然后将自定义的Titlebar视图添加进去。在Java或Kotlin代码中,可以通过...

    Android-TitleBar自定义标题居中的ToolBar

    在Android应用开发中,TitleBar通常作为界面顶部的导航元素,显示应用的名称或操作按钮。自定义TitleBar可以提供更个性化的用户界面,并增强应用的用户体验。本教程将聚焦于如何创建一个自定义的标题居中并且可以...

    android 一个骚气的titlebar

    标题中的“android 一个骚气的titlebar”指的是在Android应用开发中,设计的一个独特、个性化的顶部导航栏,通常称为TitleBar或者ActionBar。在Android系统中,TitleBar是应用程序界面的重要组成部分,它用于显示...

    Android标题栏TitleBar全攻略

    Android 标题栏 TitleBar 全攻略 Android 标题栏 TitleBar 是一个自定义的 UI 组件,由 LinearLayout 继承而来,主要用于展示浏览器的标题栏信息,包括网站图标、标题、动画进度条和背景进度条等。下面我们将详细...

    Android标题栏TitleBar介绍

    2. **应用导航**:在其他类型的应用中,如新闻客户端、社交软件等,`TitleBar`可以作为导航栏,显示当前页面的标题和导航操作。 3. **操作反馈**:通过显示加载进度、提示信息等方式,给予用户明确的操作反馈,提高...

    Android-TitleBar满足各种日常使用的标题栏不要让你的时间浪费在写标题栏上

    "Android-TitleBar"项目旨在提供一个全面、易用的标题栏解决方案,帮助开发者快速集成并定制符合应用需求的标题栏,避免花费大量时间在重复的标题栏编写工作上。 该TitleBar库提供了丰富的功能,包括但不限于以下几...

    AndroidTitleBar

    在Android应用开发中,TitleBar通常指的是位于应用程序顶部的导航栏,它显示应用程序的名称、图标或者提供一些操作按钮,如返回、设置等。TitleBar是Android用户界面(UI)设计的重要组成部分,对于提升用户体验有着...

    CustomTitleBar, 【通用标题栏】通用Android标题栏控件 A Common Titlebar For Android.zip

    CustomTitleBar是一款专门为Android平台设计的通用标题栏控件,它提供了一种灵活、可自定义的方式来实现各种风格的标题栏,旨在提升应用的UI一致性及交互体验。本文将深入探讨CustomTitleBar的核心特性和使用方法。 ...

    TitleBar-master_Android通用标题栏_

    `TitleBar-master`项目是一个专门为Android应用设计的通用标题栏组件,旨在帮助开发者快速、便捷地实现美观且功能丰富的标题栏效果。 该项目的核心知识点包括: 1. **自定义View**: `TitleBar-master`通过自定义...

    自定义组件titlebar

    在Android应用开发中,TitleBar通常作为界面顶部的导航元素,显示应用的名称或操作按钮。然而,系统默认的TitleBar可能无法满足所有设计需求,因此开发者常常需要自定义TitleBar来实现更个性化的功能和视觉效果。本...

    Android 自定义控件 组合控件 TitleBar

    本文将深入探讨如何创建一个自定义的组合控件,特别是针对App标题栏(TitleBar)的设计与实现。我们将从基本的自定义控件概念讲起,并逐步构建一个完整的TitleBar组件。 首先,了解自定义控件的基本原理。在Android...

    自定义Titlebar

    本教程将深入探讨如何在Android中实现自定义Titlebar。 首先,我们需要了解Android的布局系统。Titlebar通常由一个顶级的布局控件(如LinearLayout、RelativeLayout或ConstraintLayout)承载,然后在其中添加各种子...

    Node.js-Android仿iOSUINavigationBar风格的Titlebar适用于某些UI设计师只出iOS效果图的项目

    Android的Titlebar实现通常涉及到自定义视图(View)或者使用Android的Toolbar组件。Toolbar是Android设计支持库中的一个关键组件,它可以作为Activity的Action Bar或者在布局中作为一个普通的View使用,提供了高度...

    TitleBar:Android 标题栏封装,方便使用

    TitleBarAndroid 标题栏封装,方便使用添加依赖Step 1. Add the JitPack repository to your build fileAdd it in your root build.gradle at the end of ...com.ethanco.titlebar.TitleBar android:id="@+id/title_ba

Global site tag (gtag.js) - Google Analytics