在Android中将屏幕设置成无标题栏或者全屏的方法
ANDROID获取屏幕高度标题高度状态栏高度详解

A NDROID 获取屏幕高度、标题高度、状态栏高度详解Jojol_Zhou ,2010/11/29Android获取屏幕高度的方法主要由view提供通过View提供的方法获取高度方式有两种:1,当前显示的view中直接获取当前view高宽2,通过Activity的getWindow().findViewById(Window.ID_ANDROID_CONTENT)获取系统当前显示的view根(是一个framelayout对象),android绘制会将要绘制的view放置在framelayout中绘制。
下面分别介绍获取屏幕的高宽度方法虚线区域介绍:View获取屏幕参数值方法:Display对象获取屏幕高宽:获取display对象Activity中getWindowManager().getDefaultDisplay() getWidth() 返回显示界面宽度即屏幕宽度getHeight() 返回显示界面高度即屏幕高度由display对象设置DisplayMetrics高宽值,通过DisplayMetrics 对象获取屏幕高宽,有点多此一举:getWidth() 返回显示界面宽度即屏幕宽度getHeight() 返回显示界面高度即屏幕高度常用一些值计算:屏幕高宽Canvas对象、display对象和DisplayMetrics可获取屏幕的高宽状态栏高度View的getWindowVisibleDisplayFrame(Rect outRect)附值outRect后,outRect.top()即是状态栏高度标题高度View的getWindowVisibleDisplayFrame(Rect outRect1)附值outRect后,outRect.height()-view.getheight()即是标题高度。
绘制区域高宽方法诸多随便用。
测试:测试代码scrollTo(10, 10);super.draw(canvas);Display d = bReader.getWindowManager().getDefaultDisplay();Log.e("====DisPlay size==","Height--"+d.getHeight()+" Width--"+d.getWidth()); DisplayMetrics dm = new DisplayMetrics();d.getMetrics(dm);Log.e("====DisPlayMetrics size==","Height--"+d.getHeight()+" Width--"+d.getWidth());Log.e("====View size==","Height--"+getHeight()+" Width--"+getWidth()+"Top--"+getTop()+" Left--"+getLeft());View v =bReader.getWindow().findViewById(Window.ID_ANDROID_CONTENT); Log.e("====CONTENTView size==","Height--"+v.getHeight()+" Width--"+v.getWidth()+"Top--"+v.getTop()+" Left--"+v.getLeft());Log.e("======canvas size==", "height--"+canvas.getHeight()+" width--"+canvas.getWidth());Rect rect = new Rect();this.getDrawingRect(rect);Log.e("====view Drawing Rect==", "height--"+rect.height()+" width--"+rect.width()+" Top--"+rect.top+" Left--"+rect.left+" scrollx--"+getScrollX()+" scrollY--"+getScrollY());this.getWindowVisibleDisplayFrame(rect);Log.e("====view WindowVisible rect==", "height--"+rect.height()+" width--"+rect.width()+" Top--"+rect.top+" Left--"+rect.left);测试结果输出:====DisPlay size==(3032): Height--480 Width--320====DisPlayMetrics size==(3032): Height--480 Width--320====View size==(3032): Height--430 Width--320 Top--0 Left--0====CONTENTView size==(3032): Height--430 Width--320Top--50 Left--0======canvas size==(3032): height--480 width--320====view Drawing Rect==(3032): height--430 width--320 Top--10 Left--10 scrollx--10 scrollY--10====view WindowVisible rect==(3032): height--455 width--320Top--25 Left--0友情提示:部分文档来自网络整理,供您参考!文档可复制、编制,期待您的好评与关注!。
解决adjustpan 导致标题栏消失的方法

解决adjustpan 导致标题栏消失的方法全文共四篇示例,供读者参考第一篇示例:在Android开发中,我们经常会遇到adjustPan属性会导致标题栏消失的情况。
adjustPan属性是用来适应软键盘弹出时调整界面布局的,但有时会引起标题栏消失的问题。
那么,该如何解决adjustPan 导致标题栏消失的问题呢?一种解决方法是通过设置android:windowSoftInputMode属性来控制软键盘的显示方式。
在AndroidManifest.xml文件中,可以为Activity添加android:windowSoftInputMode属性,来指定软键盘的显示方式。
常见的几种属性值包括adjustPan、adjustResize、adjustUnspecified等。
如果adjustPan属性导致标题栏消失的问题,可以尝试将android:windowSoftInputMode属性设置为adjustResize。
这样软键盘弹出时,界面会被重新调整布局,而不是简单地将界面顶上去。
这样可以避免标题栏消失的问题。
另一种解决方法是通过代码来动态控制软键盘的显示方式。
可以在Activity的onCreate方法中通过代码来设置软键盘的显示方式。
使用以下代码可以将软键盘显示方式设置为adjustResize:```javagetWindow().setSoftInputMode(youtParams .SOFT_INPUT_ADJUST_RESIZE);```这样就能动态地控制软键盘的显示方式,避免adjustPan属性导致标题栏消失的问题。
除了以上方法之外,还可以通过监听软键盘的弹出和收起事件来主动控制界面的布局。
可以通过监听软键盘的状态改变来动态调整界面布局,确保标题栏不会因为adjustPan属性而消失。
解决adjustPan导致标题栏消失的问题有多种方法,可以通过设置android:windowSoftInputMode属性、代码动态设置软键盘显示方式,监听软键盘事件等方式来解决。
Android中activity背景色的设置

Android中activity背景⾊的设置主题Theme就是⽤来设置界⾯UI风格,可以设置整个应⽤或者某个活动Activity的界⾯风格。
在Android SDK中内置了下⾯的Theme,可以按标题栏Title Bar和状态栏Status Bar是否可见来分类:这些主题可以应⽤到整个应⽤Application范围或者某个活动Activity范围中。
应⽤Application范围:在AndroidManifest.xml中的application节点中设置theme属性,主题theme应⽤到整个应⽤程序中。
活动Activity范围:使⽤java代码或者在AndroidManifest.xml中对活动Activity的主题进⾏设置,主题仅应⽤到当前活动中。
在AndroidMainifest.xml设置⽅法:(XML中代码间不能有空格,注意中英⽂引号)使⽤java代码进⾏设置,在当前活动Activity的onCreate中进⾏设置:[java] view plaincopyprint?@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setTheme(android.R.style.Theme_Translucent_NoTitleBar);setContentView(yout.main);}背景颜⾊还可以在布局XML中设置:<LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#ffffff">直接设置Activity的背景颜⾊⼀般我们都是使⽤布局⽂件直接加载到Activity,从⽽覆盖了Activity的颜⾊。
5种方法完美解决android软键盘挡住输入框方法详解

5种⽅法完美解决android软键盘挡住输⼊框⽅法详解在开发中,经常会遇到键盘挡住输⼊框的情况,⽐如登录界⾯或注册界⾯,弹出的软键盘把登录或注册按钮挡住了,⽤户必须把软键盘收起,才能点击相应按钮,这样的⽤户体验⾮常不好。
像微信则直接把登录按钮做在输⼊框的上⾯,但有很多情况下,这经常满⾜不了需求。
同时如果输⼊框特别多的情况下,点击输⼊时,当前输⼊框没被挡住,但是当前输⼊框下⾯的输⼊框却⽆法获取焦点,必须先把键盘收起,再去获取下⾯输⼊框焦点,这样⽤户体验也⾮常不好,那有什么办法呢?系统的adjustResize和adjustPan有什么区别,他们使⽤时的注意事项,有什么系统要求及蔽端呢?下⾯对⼏种在开发中常⽤的⽅法进⾏总结:⽅法⼀:⾮透明状态栏下使⽤adjustResize和adjustPan,或是透明状态栏下使⽤fitsSystemWindows=true属性主要实现⽅法:在AndroidManifest.xml对应的Activity⾥添加android:windowSoftInputMode=”adjustPan”或是android:windowSoftInputMode=”adjustResize”属性这两种属性的区别,官⽅的解释是:这两个属性作⽤都是为了调整界⾯使键盘不挡住输⼊框,我这⾥对这两种属性使⽤场景、优缺点、注意事项进⾏了全⽅⾯总结,不知⼤家平时使⽤时是否注意到了。
属性注意事项优缺点失效情况适⽤情况adjustResize 需要界⾯本⾝可调整尺⼨,如在布局添加ScrollView,或输⼊控件属于RecycleView/ListView某⼀项优点:1.不会把标题栏顶出当前布局;2.有多项输⼊时,当前输⼊框下⾯的输⼊框可上下滑动输⼊缺点:1.需要界⾯本⾝可调整尺⼨;2. 全屏时失效1.Activity主窗⼝尺⼨⽆法调整;2.Activity全屏3.android5.0以上通过style设置沉浸式状态栏模式⽽不设置fitSystemWindow为true⾮全屏或是⾮沉浸式状态栏输⼊界⾯,输⼊框⽐较多adjustPan 页⾯不会重新布局,当前输⼊框和键盘会直接将当前输⼊框以上界⾯整体向上平移,这样即使界⾯包含标题栏,也会被顶上去优点:使⽤简单,不需要界⾯本⾝可调整尺⼨,不会有失效情况缺点:会把标题栏顶出当前布局;有多项输⼊时,当前输⼊框下⾯的输⼊框⽆法输⼊,必须收起键盘显⽰输⼊框再输⼊⽆有少量输⼊项,且输⼊量居界⾯上⽅fitsSystemWindows 如果多个View设置了fitsSystemWindows=”true”,只有初始的view起作⽤,都是从第⼀个设置了fitsSystemWindows的view开始计算padding优点:使⽤简单,需要沉浸式状态栏的界⾯,不需要⾃⼰计算padding状态栏的⾼度缺点:使⽤有限制1.View 的其他 padding 值被重新改写了2.⼿机系统版本>=android4.41.界⾯全屏2.设置界⾯主题为沉浸式状态栏adjustResize失效情况:activity设置了全屏属性指Theme.Light.NotittleBar.Fullscreen(键盘弹起时会将标题栏也推上去)或者设置了activity对应的主题中android:windowTranslucentStatus属性,设置⽅式为:android:windowTranslucentStatus=true,这时如果对应的页⾯上含有输⼊框,将会导致点击输⼊框时软键盘弹出后键盘覆盖输⼊框,导致输⼊框看不见。
Android4.4 设置APP背景全屏(含状态栏和标题栏)

效果如图(这种方式只支持Android4.4以上系统):步骤:1、使用Window对象设置Activity主题为铺满全屏(含状态栏和标题栏)2、自定义ActionBar主题,使ActionBar全透明3、设置内容显示在ActionBar之下(避免重叠)实现:【一】、首先是自定义一个Actionbar的style (ActionBar背景全透明、高度自定义)<style name="AppTheme.ActionBarStyle" parent="android:Widget.ActionBar"> <item name="android:background">#00000000</item><item name="android:height">55dp</item></style>【二】、自定义APP主题,设置actionBarStyle为自定义actionBar样式<style name="MyAppTheme" parent="android:Theme.Holo"><item name="android:actionBarStyle">@style/AppTheme.ActionBarStyle</item> </style>【三】、在mainfast配置文件中设置app主题为自定义主题【四】、在Activity中的OnCreate方法中配置如下内容(实现背景铺满全屏,包括状态栏和ActionBar标题栏。
加上在自定义ActionBar主题时,设置了ActionBar样式为全透明,因此实现所需效果):Window window = getWindow();window.setFlags(youtParams.FLAG_TRANSLUCENT_STATUS,WindowManager. LayoutParams.FLAG_TRANSLUCENT_STATUS);window.setFlags(youtParams.FLAG_TRANSLUCENT_NAVIGATION, youtParams.FLAG_TRANSLUCENT_NAVIGATION);【五】、在布局文件里加入android:fitsSystemWindows="true"(使内容显示在ActionBar下面,不与状态栏和标题栏重叠)。
安卓修改标题栏

安卓修改标题栏稍微学习了⼀点,安卓标题栏的修改,对于不同的界⾯,可能会使⽤不同的标题举个例⼦第⼀步:右键你的app ,New⼀个Android resource file随意起⼀个⽂件名 style.xml 这个⽂件会出现在values⽂件夹下内容如下:<?xml version="1.0" encoding="utf-8"?><resources><style name="TitleBackgroundColor"> //这⾥实现的设置标题栏的背景颜⾊<item name="android:background">@color/selected_color</item>//这⾥的颜⾊需要⾃⼰写此处我引⽤了我项⽬中的颜⾊</style><style name="titlestyle" parent="android:Theme">//这⾥就是对于标题栏的设置 name就是你所写的标题栏的"代表"<item name="android:windowTitleSize">40dip</item>//这是⾼度<item name="android:windowTitleBackgroundStyle">@style/TitleBackgroundColor</item>//这⾥是上⾯的写的背景⾊注意name就⼤概了解意思了</style></resources>第⼆步:在你的清单⽂件 AndroidMainfest.xml 中,找到你的application 在当中添加android:theme="@style/titlestyle" //这个就是第⼀步⾃⼰定义的“风格”==》你的标题栏第三步:开始⾃⼰设置你想要标题栏的样式:加⼊我想标题显⽰:我的标题栏通过⾃⼰布局;1.新建⼀个布局⽂件 title_home.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:orientation="vertical"><TextViewandroid:id="@+id/textView19"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="我的标题栏"android:textSize="20dp" //字体⼤⼩android:textColor="@color/encode_view"/>//字体颜⾊需⾃⼰设置</LinearLayout></LinearLayout>以上的布局可以通过预览效果看到,是⼀个居中显⽰的Textview 居中的字体是“我的标题栏”第四步:也是最重要的⼀步(代码顺序)进⼊你需要设置标题栏的那个activity中,在oncreate⽅法中,你会看见setonContetnView这个⽅法,我们都知道这个是加载布局的:当我们需要使⽤⾃⼰使⽤的标题栏时候就添加如下代码:顺序如下requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);//添加这句:这⾥表达的意思为使⽤⾃定义标题栏setContentView(yout.settings);//这是加载的页⾯布局getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,yout.title_home);//然后在加⼊这句话,这句话加载的yout."刚才你写的布局⽂件的名称"最后,可是run⼀下看看效果了。
Android五种隐藏状态栏和标题栏的方法

Android五种隐藏状态栏和标题栏的⽅法Android五种隐藏状态栏和标题栏的⽅法⽅法⼀:public class MainActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);// 隐藏标题栏requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏状态栏getWindow().setFlags(youtParams.FLAG_FULLSCREEN,youtParams.FLAG_FULLSCREEN);setContentView(yout.activity_main);}}⽅法⼆:<!-- 同时隐藏状态栏和标题栏 --><activityandroid:name="com.ysj.demo.MainActivity"android:theme="@android:style/Theme.NoTitleBar.Fullscreen"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="UNCHER" /></intent-filter></activity>⽅法三:<!-- Application theme. --><style name="AppTheme" parent="AppBaseTheme"><!-- All customizations that are NOT specific to a particular API-level can go here. --><!-- 隐藏状态栏 --><item name="android:windowFullscreen">true</item><!-- 隐藏标题栏 --><item name="android:windowNoTitle">true</item></style>⽅法四:动态显⽰隐藏状态栏//隐藏状态栏youtParams lp = context.getWindow().getAttributes();lp.flags |= youtParams.FLAG_FULLSCREEN;context.getWindow().setAttributes(lp);//显⽰状态栏youtParams attr = context.getWindow().getAttributes();attr.flags &= (~youtParams.FLAG_FULLSCREEN);context.getWindow().setAttributes(attr);⽅法五:动态显⽰隐藏状态栏View类提供了setSystemUiVisibility和getSystemUiVisibility⽅法,这两个⽅法实现对状态栏的动态显⽰或隐藏的操作,以及获取状态栏当前可见性。
ANDROID 获取屏幕高度,标题高度,状态栏高度详解

A NDROID 获取屏幕高度、标题高度、状态栏高度详解Jojol_Zhou ,2010/11/29Android获取屏幕高度的方法主要由view提供通过View提供的方法获取高度方式有两种:1,当前显示的view中直接获取当前view高宽2,通过Activity的getWindow().findViewById(Window.ID_ANDROID_CONTENT)获取系统当前显示的view根(是一个framelayout对象),android绘制会将要绘制的view放置在framelayout中绘制。
下面分别介绍获取屏幕的高宽度方法虚线区域介绍:View获取屏幕参数值方法:Display对象获取屏幕高宽:获取display对象Activity中getWindowManager().getDefaultDisplay() getWidth() 返回显示界面宽度即屏幕宽度getHeight() 返回显示界面高度即屏幕高度由display对象设置DisplayMetrics高宽值,通过DisplayMetrics 对象获取屏幕高宽,有点多此一举:getWidth() 返回显示界面宽度即屏幕宽度getHeight() 返回显示界面高度即屏幕高度常用一些值计算:屏幕高宽Canvas对象、display对象和DisplayMetrics可获取屏幕的高宽状态栏高度View的getWindowVisibleDisplayFrame(Rect outRect)附值outRect后,outRect.top()即是状态栏高度标题高度View的getWindowVisibleDisplayFrame(Rect outRect1)附值outRect后,outRect.height()-view.getheight()即是标题高度。
绘制区域高宽方法诸多随便用。
测试:测试代码scrollTo(10, 10);super.draw(canvas);Display d = bReader.getWindowManager().getDefaultDisplay();Log.e("====DisPlay size==","Height--"+d.getHeight()+" Width--"+d.getWidth()); DisplayMetrics dm = new DisplayMetrics();d.getMetrics(dm);Log.e("====DisPlayMetrics size==","Height--"+d.getHeight()+" Width--"+d.getWidth());Log.e("====View size==","Height--"+getHeight()+" Width--"+getWidth()+"Top--"+getTop()+" Left--"+getLeft());View v =bReader.getWindow().findViewById(Window.ID_ANDROID_CONTENT); Log.e("====CONTENTView size==","Height--"+v.getHeight()+" Width--"+v.getWidth()+"Top--"+v.getTop()+" Left--"+v.getLeft());Log.e("======canvas size==", "height--"+canvas.getHeight()+" width--"+canvas.getWidth());Rect rect = new Rect();this.getDrawingRect(rect);Log.e("====view Drawing Rect==", "height--"+rect.height()+"width--"+rect.width()+" Top--"+rect.top+" Left--"+rect.left+"scrollx--"+getScrollX()+" scrollY--"+getScrollY());this.getWindowVisibleDisplayFrame(rect);Log.e("====view WindowVisible rect==", "height--"+rect.height()+" width--"+rect.width()+" Top--"+rect.top+" Left--"+rect.left);测试结果输出:====DisPlay size==(3032): Height--480 Width--320====DisPlayMetrics size==(3032): Height--480 Width--320====View size==(3032): Height--430 Width--320 Top--0 Left--0====CONTENTView size==(3032): Height--430 Width--320Top--50 Left--0======canvas size==(3032): height--480 width--320====view Drawing Rect==(3032): height--430 width--320 Top--10 Left--10 scrollx--10 scrollY--10====view WindowVisible rect==(3032): height--455 width--320Top--25 Left--0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Android中怎样将屏幕设置成无标题栏或者全屏
在进行UI设计时,我们经常需要将屏幕设置成无标题栏或者全屏。
那么我们应该如何实现呢?其实在Android中将屏幕设置成无标题栏或者全屏是非常简单的,主要有两种方法,在这里欧柏泰克小编和大家一起分享下吧:配置xml文件和编写代码设置。
1.在xml文件中进行配置
在项目的清单文件AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可。
实现全屏效果:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
实现无标题栏(但有系统自带的任务栏):
android:theme="@android:style/Theme.NoTitleBar"
2.编写代码设置
在程序中编写代码进行设置,只需在onCreate()方法中加入如下代码即可
实现全屏效果:
getWindow().setFlags(youtParams.FLAG_FULLSCREEN, youtParams.FLAG_FULLSCREEN);
实现无标题栏(但有系统自带的任务栏):
requestWindowFeature(Window.FEATURE_NO_TITLE);
附:Android系统自带样式
android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不显示应用程序标题栏,并全屏
android:theme="Theme.Light" 背景为白色
android:theme="Theme.Light.NoTitleBar" 白色背景并无标题栏
android:theme="Theme.Light.NoTitleBar.Fullscreen" 白色背景,无标题栏,全屏
android:theme="Theme.Black" 背景黑色
android:theme="Theme.Black.NoTitleBar" 黑色背景并无标题栏
android:theme="Theme.Black.NoTitleBar.Fullscreen" 黑色背景,无标题栏,全屏
android:theme="Theme.Wallpaper" 用系统桌面为应用程序背景
android:theme="Theme.Wallpaper.NoTitleBar" 用系统桌面为应用程序背景,且无标题栏
android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen" 用系统桌面为应用程序背景,无标题栏,全屏
android:theme="Translucent" 透明背景
android:theme="Theme.Translucent.NoTitleBar" 透明背景并无标题
android:theme="Theme.Translucent.NoTitleBar.Fullscreen" 透明背景并无标题,全屏
android:theme="Theme.Panel" 面板风格显示
android:theme="Theme.Light.Panel" 平板风格显示。