android布局

Android百分比布局(PercentRelativeLayout)嵌套NavigationView自定义宽度

故事扮演 提交于 2019-12-20 15:16:21
因为NavigationView必须嵌套在DrawerLayout里,当DrawerLayout不是根布局时,就没办法用match_parent等定义宽高,会报错。所以要重写DrawerLayout的onMeasure()方法: public class MyDrawerLayout extends DrawerLayout { public MyDrawerLayout(@NonNull Context context) { super(context); } public MyDrawerLayout(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public MyDrawerLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { widthMeasureSpec = MeasureSpec.makeMeasureSpec(

Android Fragment 深度解析

倾然丶 夕夏残阳落幕 提交于 2019-12-20 11:38:24
有过一些面试经验的人基本都深有体会,每次面试一般都会问到Fragment的知识,所以,今天我就单独把Fragment拿出来与大家分享一下. 会涉及到Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态使用Fragment,Fragment回退栈,Fragment事务,以及Fragment的一些特殊用途,例如:没有布局的Fragment有何用处?Fragment如何与Activiy交互?Fragment如何创建对话框?Fragment如何与ActionBar集成等等... 1、Fragment的产生与介绍 Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套app,然后拷贝一份,修改布局以适应什么超级大屏的。难道无法做到一个app可以同时适应手机和平板吗?答案是,当然有,那就是Fragment.Fragment出现的初衷就是为了解决这样的问题。 你可以把Fragment当成Activity一个界面的一部分,甚至Activity的界面由完全不同的Fragment组成,更帅气的是Fragment有自己的声明周期和接收、处理用户的事件,这样就不必要在一个Activity里面写一堆事件、控件的代码了。更为重要的是,你可以动态的添加、替换、移除某个Fragment。 2

Android 布局之FrameLayout

一个人想着一个人 提交于 2019-12-18 04:48:14
Android 布局之FrameLayout 1 FrameLayout简介 对于FrameLayout,官方介绍是: FrameLayout is designed to block out an area on the screen to display a single item. Generally, FrameLayout should be used to hold a single child view, because it can be difficult to organize child views in a way that's scalable to different screen sizes without the children overlapping each other. You can, however, add multiple children to a FrameLayout and control their position within the FrameLayout by assigning gravity to each child, using the android:layout_gravity attribute. 即,设计FrameLayout是为了显示单一项widget。通常

Android UI基础之五大布局

删除回忆录丶 提交于 2019-12-18 04:47:38
Android UI 基础之 五大布局   Android 的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦。组件按照布局的要求依次排列,就组成了用户所看见的界面。Android的五大布局分别是 LinearLayout(线性布局)、FrameLayout(单帧布局)、RelativeLayout(相对布局)、AbsoluteLayout(绝对布局,Android2.0中标注为已过期)和TableLayout(表格布局) 。 LinearLayout 线性布局 子元素任意 FrameLayout 帧布局 子元素任意 TableLayout 表格布局 子元素为<TableRow>,其中可放各种控件 RelativeLayout 相对布局 子元素任意 AbsoluteLayout 绝对布局 子元素任意 公共控件属性: android:id= "@+id/***" 控件id android:layout_width= android:layout_height= "wrap_content" "match_parent" "fill_parent" 控件的宽度 控件的高度 android:layout_marginLeft= android:layout_marginRight= android:layout_marginTop= android

自定义Android标题栏TitleBar布局

为君一笑 提交于 2019-12-17 18:34:59
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); // 软件activity的布局 getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar ); // titlebar为自己标题栏的布局 Layout下建立titlebar.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:layout_gravity ="center_vertical" android:orientation ="horizontal" > < Button android:id ="@+id/back" android:layout_width ="wrap_content" android

4种基本布局

五迷三道 提交于 2019-12-10 14:41:17
一、线性布局LinearLayout <LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android” android:orientation="horizontal“ android:layout_width=“match_parent” android:layout_height=“match_parent”> <Btuuon android:id="@+id/button1" android:layout_width="0" android:layout_height="wrap_content" android:layout_weight="1" android:text="button1" android:layout_gravity="top" /> 1、**android:orientation**="vertical" 指定了排列方式,vertical为垂直方向上排列,horizontal为水平方向上排列。 注意点:排列方式为horizontal,内部控宽度不能指定为match_parent. 2、**android:layout_gravity**="top"制定控件在布局的对齐方式,android:layout_gravity的值与文字的gravity一样。 注意点

Android 基础

末鹿安然 提交于 2019-12-09 17:39:33
高内聚,低耦合。 内填充,外填充 设置组件填充父容器时存在两种方式 内填充的部分存在于组件空间内,相当于页边距的效果 padding—— 用于设置四边的内边距 paddingLeft 、 paddingRight 、 paddingTop 、 paddingBottom 外填充的部分存在与组件空间外,类似于边界的间隔 margin—— 用于设置四边的外部间距 marginLeft 、 marginRight 、 marginTop 、 marginBottom 时间驱动模型(守株待兔) 事件源(树),监听器(农夫),事件(兔子撞树) 监听器:为每个事件编写处理方法 将监听器对象注册给事件源 事件源发生某个事件时调用监听器中对应的方法完成事件处理 Java的 三大框架 (Spring,Struts,Hidernate) spring 利用它的IOC和AOP来处理控制业务(负责对数据库的操作) struts 主要负责表示层的显示 hibernate 主要作用是数据的持久化到数据库 Java的三大特性 Java语言的三大特性即是:封装、继承、多态 Android常用视图 视图(view)是可视化的界面元素 任何可视化组件都需要从android.view .View类继承 视图类通常分3种:布局类、视图容器类、和基础视图类 布局类: 1. 线性布局 ( LinearLayout )

安卓APP开发中的屏幕适配问题如何解决?

爷,独闯天下 提交于 2019-12-07 23:46:46
1 为什么要进行Android屏幕适配 由于 Android 系统的开放性,任何用户、开发者、 OEM 厂商、运营商都可以对 Android 进行定制,于是导致: Android 系统碎片化 : 小米定制的 MIUI 、魅族定制的 flyme 、华为定制的 EMUI 等等——当然都是基于 Google 原生系统定制的; Android 机型屏幕尺寸碎片化 : 5 寸、 5.5 寸、 6 寸等等; Android 屏幕分辨率碎片化 : 320x480 、 480x800 、 720x1280 、 1080x1920。 屏幕尺寸分布图 据友盟指数显示,统计至 2015 年 12 月,支持 Android 的设备共有 27796 种。 当 Android 系统、屏幕尺寸、屏幕密度出现碎片化的时候,就很容易出现同一元素在不同手机上显示不同的问题。 虽然系统为使您的应用适用于不同的屏幕,会进行缩放和大小调整,但您应针对不同的屏幕尺寸和密度优化应用。 这样可以最大程度优化所有设备上的用户体验,用户会认为您的应用实际上是专为他们的设备而设计,而不是简单地拉伸以适应其设备屏幕。 2 相关概念 2.1 屏幕尺寸 含义:按屏幕对角测量的实际物理尺寸。 为简便起见, Android 将所有实际屏幕尺寸分组为四种通用尺寸:小、 正常、大和超大 单位 : 英寸( inch ),一英寸≈ 2.54cm 2.2

Android中的表格布局详解

人走茶凉 提交于 2019-12-07 02:07:24
Android中的表格布局详解 1.TableLayout简介 Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件。 当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列。 当为View时,该View将独占一行 2.如何确定行数和列数 如果我们直接往TableLayout中添加组件的话,那么这个组件将占满一行!!! 如果我们想一行上有多个组件的话,就要添加一个TableRow的容器,把组件都丢到里面! tablerow中的组件个数就决定了该行有多少列,而列的宽度由该列中最宽的单元格决定 tablerow的layout_width属性,默认是fill_parent的,我们自己设置成其他的值也不会生效!!! 但是layout_height默认是wrapten——content的,我们却可以自己设置大小! 整个表格布局的宽度取决于父容器的宽度(占满父容器本身) 有多少行就要自己数啦,一个tablerow一行,一个单独的组件也一行!多少列则是看tableRow中 的组件个数,组件最多的就是TableLayout的列数 3.三个常用属性 android:stretchColumns设置可伸展的列。该列可以向行方向伸展,最多可占据一整行。 android:shrinkColumns 设置可收缩的列

Android控件的基本属性

夙愿已清 提交于 2019-12-07 02:07:07
常见的布局有四种 LinearLayout 线性布局 子元素任意; TableLayout 表格布局 子元素为TableRow,其中可放各种控件; RelativeLayout 相对布局 子元素任意; AbsoluteLayout 绝对布局 子元素任意; 公共控件属性 android:id = “@+id/XXX” 程序中通过ID来关联控件 android:layout_width/android:layout_height 控制控件的宽度/高度,可选”wrap_content”/”fill_parent”/”match_parent”/具体像素 android:layout_marginLeft/Right/Top/Bottom =“5dip” 各边距离其他控件的距离 android:gravity 控件中内容的显示位置 android:textSize 空间中文本大小 android:textColor = “#ff123456” 空间中文本颜色,以#开头,前两位为透明值,后六位为颜色值 android:textStyle =”normal”/”bold”/”italic” 控件文本风格,也可用“|”将属性组合起来 android:text 控件文本内容 android:background = “@drawable/window_bg” 控件背景 android:src =