安卓Android 自定义标题栏(title栏)实例

 更新时间:2016年9月20日 19:59  点击:2101
自己第一次接触android开发,于时先测试一个标题了与hello word了,结果不成呀,于是搜索了一个和我一样入门实例,下面和大家一起来看看。

第一步,向实现自定义标题栏,需要在onCreate方法里这样写

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 

setContentView(R.layout.main); 

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar); 

注意:
requestWindowFeature要在setContentView之前
getWindow().setFeatureInit最好在setContentView之后

 


第二步,就是写好自己的布局文件,实现标题栏的自定义。

不过我们会遇到一些问题,就是标题栏的高度不能自定义~下面就是解决办法~

下面通过实例来看一下如何实现。

1、 在layout下创建一个titlebtn.xml文件,内容如下:

 代码如下 复制代码

xml version="1.0" encoding="utf-8"?>

<<>RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

   android:layout_width="fill_parent"

   android:layout_height="fill_parent"

   android:orientation="horizontal">

 


<<>ImageButton

       android:id="@+id/imageButton1"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:layout_alignParentLeft="true"

       android:layout_centerVertical="true"

       android:background="#00000000"

       android:src="@drawable/prv"/>

 


<<>TextView

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:layout_centerInParent="true"

       android:text="标题栏"/>

 


<<>ImageButton

       android:id="@+id/imageButton1"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:layout_alignParentRight="true"

       android:layout_centerInParent="true"

       android:background="#00000000"

       android:src="@drawable/next"/>
<RelativeLayout>


修改style.xml文件

加入下面代码

 代码如下 复制代码

name="CustomWindowTitleBackground">

name="android:background">#00cc00

name="test"parent="android:Theme">

name="android:windowTitleSize">50dp

name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground

加入到AndroidManifest

 代码如下 复制代码


android:name=".CustomTitileBarActivity"
android:label="@string/app_name"android:theme="@style/test">
android:name="android.intent.action.MAIN"/>
 android:name="android.intent.category.LAUNCHER"/>

本文章来给各位同学介绍Android studio 安装指南,希望此教程对大家会有所帮助。

一、简介

 Android Studio是Google新发布的Android应用程序开发环境,Android Studio是基于IntelliJ IDEA开发而成的。在Android Studio开发环境中,Android开发者可以非常方便地调试Android应用程序,Android Studio不仅是Android开发的IDE集成环境,而且还有以下特点:

 

       *基于 Gradle 的构建支持

       *Android 专属的重构和快速修复

       *提示工具以捕获性能、可用性、版本兼容性等问题

       *支持 ProGuard 和应用签名

       *基于模板的向导来生成常用的 Android 应用设计和组件

       *功能强大的布局编辑器,可以让你拖拉 UI 控件并进行效果预览

 

       谷歌对开发者控制台进行了改进,增加了五个新的功能,包括优化小贴士、应用翻译服务、推荐跟踪、营收曲线图、用版测试和阶段性展示。

 

1、优化小贴士:在主体中打开你的应用,点击小贴士,会得到这样的建议:为你的应用开发平板电脑版本。

 

2、应用翻译服务:允许开发者直接在开发主体中获得专业的翻译。上传你的需求,选择翻译,其会显示翻译方和价格,并在一周内发回译本。

 

3、推荐跟踪:允许开发者找出最有效的广告

 

4、营收曲线图:向开发者展示其应用营收,以国家进行划分

 

5、试用版测试和阶段性展示:开发者可以对应用进行测试,然后向测试用户推出,测试结果不会对外公布。当一个版本的测试结束,开发者可以向特定比例用户推出。

 

Android Studio这款开发工具被首次公布,这也是为了方便开发者基于Android开发。

 

首先解决的一个问题是多分辨率。Android设备拥有大量不同尺寸的屏幕和分辨率,根据新的Studio,开发者可以很方便的调整在各个分辨率设备上的应用。

 

同时Studio还解决语言问题,多语言版本、支持翻译都让开发者更适应全球开发环境。Studio还提供收入记录功能。

 

最大的改变在于Beta测试的功能。Studio提供了Beta Testing,可以让开发者很方便试运行。


 

二、下载


       1.下载JDK:

           地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

       2.下载Android studio:

           地址:http://developer.android.com/sdk/installing/studio.html

 

 

三、安装

 

       1.安装JDK:

           一路下一步,我就不说了。


       2.设置系统变量(win7为例):

           在红框内点击“新建”

           然后分别添加3个新的系统变量。

 

JAVA_HOME:

   C:Program FilesJavajdk1.7.0_21bin;C:Program FilesJavajdk1.7.0_21jrebin;C:Program FilesJavajdk1.7.0_21libtools.jar;C:Program FilesJavajdk1.7.0_21libdt.jar;

JDK_HOME:

   C:Program FilesJavajdk1.7.0_21;C:Program FilesJavajdk1.7.0_21bin;C:Program FilesJavajdk1.7.0_21jrebin;

ANDROID_STUDIO_JDK:

   C:Program FilesJavajdk1.7.0_21


           添加完之后,才能使用哦,不然会出现莫名其妙的问题的。这里记得把“C:Program FilesJavajdk1.7.0_21”换成你自己的安装目录。


       3.安装Android studio:

           一路下一步不说了。


       4.启动:

           (注意:如果你的jdk没安装好,或者JDK的系统环境配置没有修改好,可能进不来。或者运行后没有反应。)



       进来之后看到的这个就是新建的界面。


 

       这里新建项目

 

 

       然后悲剧了。这里要更新,好吧,MS是1.4GB的SDK包。更新完之后,就能使用了,发几个效果图吧。

 

 


 

 

 

在android开发中设置全屏有常用的两种方法,一种是通过程序设置,另一种是在配置文件里修改(AndroidManifest.xml)下面我来介绍一下。

android提供了两种方式来实现无标题栏和全屏效果,即通过xml文件声明的方式或在程序中动态控制的方式。

android设置全屏方法

一、通过程序设置:

 代码如下 复制代码

    package com.hhh.changeimage;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Window;
    import android.view.WindowManager;
    public class ChangeImage extends Activity
    {
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    //无title
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams. FLAG_FULLSCREEN);
    setContentView(R.layout.main);
    }
    }

注:无title和全屏段代码必须在setContentView(R.layout.main) 之前,不然会报错。

二、在配置文件里修改(AndroidManifest.xml)

 代码如下 复制代码

    <activity android:name=".ChangeImage"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:label="@string/app_name">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

下面我们结合上面的实例作一个Android全屏设置及取消全屏设置


•1、//在onCreat方法中setContentView()之前插入

 代码如下 复制代码
•requestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题栏
•getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,
•              WindowManager.LayoutParams. FLAG_FULLSCREEN);//全屏

•注:这种方法在启动activity时会闪现状态栏之后再全屏
•2、在manifest里面配置:<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />只在当前Activity内显示全屏
•<application  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  />为整个应用配置全屏显示
•3、/**
• * 全屏切换
• */

 代码如下 复制代码
•public void fullScreenChange() {
•SharedPreferences mPreferences = PreferenceManager.getDefaultSharedPreferences(this);
•boolean fullScreen = mPreferences.getBoolean("fullScreen", false);
•WindowManager.LayoutParams attrs = getWindow().getAttributes();
•System.out.println("fullScreen的值:" + fullScreen);
•if (fullScreen) {
•attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
•getWindow().setAttributes(attrs);
•//取消全屏设置
•getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
•mPreferences.edit().putBoolean("fullScreen", false).commit() ;
•} else {
•attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
•getWindow().setAttributes(attrs);
•getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
•mPreferences.edit().putBoolean("fullScreen", true).commit();
•}
•}
本文章来给各位同学介绍Android中TextView文字居中与垂直靠左居中设置方法,如果你还是入门级别的androider不防进入参考一下。

有2种方法可以设置TextView文字居中:

一:在xml文件设置:android:gravity="center"

二:在程序中设置:m_TxtTitle.setGravity(Gravity.CENTER);

 
备注:android:gravity和android:layout_gravity的区别在于前者对控件内部操作,后者是对整个控件操作。

例如:

 代码如下 复制代码

android:gravity="center"是对textView中文字居中

android:layout_gravity="center"是对textview控件在整个布局中居中

其实很容易理解,出现"layout"就是控件对整个布局的操作


TextView文字垂直靠左居中,


设置android:gravity="center_vertical|left"。


android:gravity="center", 垂直水平居中

LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity。他们的区别在于:android:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的对齐方式。

举个例子,我们可以通过设置android:gravity="center"来让EditText中的文字在EditText组件中居中显示;同时我们设置EditText的android:layout_gravity="right"来让EditText组件在LinearLayout中居中显示。

 代码如下 复制代码

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="40sp"
    android:gravity="center_vertical|left"
    android:text="@string/hello_world" />

做一个输入框时发现android中ditView的默认焦点了,这种问题如果是在输入框还好,但在搜索页面或浏览页面这样就会影响用户体验了,那要如何取消EditView的默认焦点呢,下面我们来看看。

在网上找了好久,有点 监听软键盘事件,有点 调用 clearFouse()方法,但是测试了都没有! xml中也找不到相应的属性可以关闭这个默认行为

解决之道:在EditText的父级控件中找一个,设置成

 代码如下 复制代码

android:focusable="true"
android:focusableInTouchMode="true"

这样,就把EditText默认的行为截断了!

 代码如下 复制代码

<LinearLayout
style="@style/FillWrapWidgetStyle"
android:orientation="vertical"
android:background="@color/black"
android:gravity="center_horizontal"
android:focusable="true"
android:focusableInTouchMode="true"
>
<ImageView
android:id="@+id/logo"
style="@style/WrapContentWidgetStyle"
android:background="@drawable/dream_dictionary_logo"
/>
<RelativeLayout
style="@style/FillWrapWidgetStyle"
android:background="@drawable/searchbar_bg"
android:gravity="center_vertical"
>
<EditText
android:id="@+id/searchEditText"
style="@style/WrapContentWidgetStyle"
android:background="@null"
android:hint="Search"
android:layout_marginLeft="40dp"
android:singleLine="true"
/>
</RelativeLayout>
</LinearLayout>

查阅了很多资料后,发现以下方法最简单:

在xml中,在EditText控件之前
加入

 代码如下 复制代码

<LinearLayout
    android:id="@+id/linearLayout_focus"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:layout_width="0px"
    android:layout_height="0px"/>

这是一个虚假的LinearLayout,不会显示的,但是会抢走焦点

[!--infotagslink--]

相关文章

  • 苹果告别“高大上”,越来越向安卓和中国用户靠近

    “一起,让我们将这个世界变得更好。”苹果首席执行官蒂姆 库克对着台下5000多名开发者说道,声音略有些沙哑和颤抖。...2016-07-04
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • C#创建自定义控件及添加自定义属性和事件使用实例详解

    这篇文章主要给大家介绍了关于C#创建自定义控件及添加自定义属性和事件使用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-25
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • Android模拟器上模拟来电和短信配置

    如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
  • Vue 组件复用多次自定义参数操作

    这篇文章主要介绍了Vue 组件复用多次自定义参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
  • 夜神android模拟器设置代理的方法

    夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
  • android自定义动态设置Button样式【很常用】

    为了增强android应用的用户体验,我们可以在一些Button按钮上自定义动态的设置一些样式,比如交互时改变字体、颜色、背景图等。 今天来看一个通过重写Button来动态实...2016-09-20
  • Android WebView加载html5页面实例教程

    如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
  • 深入理解Android中View和ViewGroup

    深入理解Android中View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。本教程我们深...2016-09-20
  • Android自定义WebView网络视频播放控件例子

    下面我们来看一篇关于Android自定义WebView网络视频播放控件开发例子,这个文章写得非常的不错下面给各位共享一下吧。 因为业务需要,以下代码均以Youtube网站在线视...2016-10-02
  • Android用MemoryFile文件类读写进行性能优化

    java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
  • 自定义jquery模态窗口插件无法在顶层窗口显示问题

    自定义一个jquery模态窗口插件,将它集成到现有平台框架中时,它只能在mainFrame窗口中显示,无法在顶层窗口显示. 解决这个问题的办法: 通过以下代码就可能实现在顶层窗口弹窗 复制代码 代码如下: $(window.top.documen...2014-05-31
  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • 自定义feignClient的常见坑及解决

    这篇文章主要介绍了自定义feignClient的常见坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-20
  • 安卓开发之设置密码只能输入字母和数字的组合

    设置登录密码我们一般会有限制的如由什么组合了,下面我们来看一篇关于安卓开发之设置密码只能输入字母和数字的组合方法,具体的细节如下所示。 无论是电脑还是手机...2016-09-20
  • pytorch 自定义卷积核进行卷积操作方式

    今天小编就为大家分享一篇pytorch 自定义卷积核进行卷积操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-06
  • android.os.BinderProxy cannot be cast to com解决办法

    本文章来给大家介绍关于android.os.BinderProxy cannot be cast to com解决办法,希望此文章对各位有帮助呀。 Android在绑定服务的时候出现java.lang.ClassCastExc...2016-09-20
  • Android 实现钉钉自动打卡功能

    这篇文章主要介绍了Android 实现钉钉自动打卡功能的步骤,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下...2021-03-15