第 8 章 视图组(ViewGroup)和布局(Layout)的使用 在 Android 中视图组是集合若干个控件在一起的元素,ViewGroup 有两种用法,一种是像普通的控件一样使用(如网页视图、旋转按钮...8.1 Android的屏幕元素体系 在屏幕中控件的组织上,可以将各个视图(控件)组成一个视图组(ViewGroup),视图组是一个包含了其他视图的视图。...根据以上的原则,当屏幕需要包含多个视图时,必须组织在一个视图组中。由于视图组本身也是一个视图,因此视图组还可以包含视图组。...在这里一个主要的限制是:在没有视图组的情况下,两个以上的视图(也包括视图组)是不能够并列的。 例如,在布局文件中,类似下面的写法是不可以的。 Android 中,有一些预置的 ViewGroup 可以直接像 View 一样使用(如 WebView),还有一些ViewGroup 本身没有功能,只是提供屏幕上的各种布局(如 AbsoluteLayout
本节引言: 本节继续带来的是Android系统服务中的LayoutInflater(布局服务),说到布局,大家第一时间 可能想起的是写完一个布局的xml,然后调用Activity的setContentView...()加载布局,然后把他显示 到屏幕上是吧~其实这个底层走的还是这个LayoutInflater,用的Android内置的Pull解析器来解析 布局。...一般在Android动态加载布局或者添加控件用得较多,本节我们就来学习下他在实际开发中 的一些用法~ 1.LayoutInflater的相关介绍 1)Layout是什么鬼?...又或者设置margin等等,这个由你决定~ 2.纯Java代码加载布局 我们早已习惯了使用XML生成我们需要的布局,但是在一些特定的情况下,我们 需要使用Java代码往我们的布局中动态的添加组件或者布局...中的LayoutInflater(布局服务),以及动态加载View和控件 相关的东西,相信对初学控件的朋友带来帮助~好的,就说这么多,谢谢
在实际开发中,由于项目一开始设计的一些不合理性,会在组件中通过 html[media=pad]{ .xxx{ /* 组件样式 */ } } 以上方式修改某些组件的样式,这样会涉及到从...html 层级选择,由于我 style 标签是这样写的 所以导致组件内部无法修改或选中组件外部元素,则无法修改外部元素的样式。...解决方案: 两种: 第一种: 直接新开一个全局的 style 标签 在这里写全局的样式 第二种 使用 :global
把include包裹在linearlayout里面就行了 <LinearLayout android:id="@+id/head_select_view" android...:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility=..."gone" > <include android:layout_width="match_parent" android:layout_height
Android开发中TableLayout表格布局 一、引言 在移动端应用程序开发中,常常会使用到表格布局,iOS和Android开发框架中都提供了独立的表格视图控件供开发者使用,例如...iOS中的UITableView、UICollectionView,Android中的ListView、GridView等。...除了独立的视图控件外,Android中还提供了一个布局容器类TableLayout,使用其也可以进行方便的表格布局。 ...实际上,TableLayout就是采用这样的原理,TableLayout继承于LinearLayout,其中每个视图元素作为一行,同时Android中还提供了一个TableRow类,这个类同样继承自LinearLayout...,其中每个视图元素作为当前行中的一列,结合使用TableLayout与TableRow,就实现了行列的表格布局。
Android开发中RelativeLayout相对布局 RelativeLayout布局是Android界面布局中应用最广也最强大的一种布局,其不仅十分灵活,可以解决开发中各种界面布局需求...,同时也很方便了解决了多屏幕尺寸的适配问题。...在iOS开发中,Autolayout技术总是被赞不绝口,RelativeLayout布局就是Andriod系统中的Autolayout,其又被称为相对布局。 ...所谓相对布局,是指其坐标的确定并不是开发者写死的,而是有系统自动计算出来的,那么系统如何计算每个视图控件的位置呢?...void addRule(int verb, int anchor) //移除一个布局规则 public void removeRule(int verb) 用于进行布局规则配置的参数如下: /*=
日常的工作中可能会用到,选取处某个或者某些元素外的所有元素。...这时我们可以使用 jQuery 遍历中的 not() 方法来排除某些元素,例如根据元素的 #id ,.class 等排除,代码如下: $("div.content *").not(".keep"); 表示....content 类的 div 下除 .keep 类以外的所有元素; 另外,注意这里的 * 表示所有元素。...示例: HTML 点击按钮删除下面绿色框中所有不是keep类的元素,keep类的元素用红色区分。...声明:本文由w3h5原创,转载请注明出处:《利用jQuery not()方法选取除某个元素外的所有元素》 https://www.w3h5.com/post/439.html
(location);//获取在整个屏幕内的绝对坐标 location [0]--->x坐标,location [1]--->y坐标 getLocationOnScreen 计算该视图在全局坐标系中的x...,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标 getLocationInWindow 计算该视图在它所在的widnow的坐标x,y值,获取在整个窗口内的绝对坐标...在onWindowFocusChanged(boolean hasFocus)中获取为好 即覆写Activity的onWindowFocusChanged(boolean hasFocus)方法 XXX_Activity...int[] location2 = new int[2] ; view.getLocationOnScreen(location2);//获取在整个屏幕内的绝对坐标...//do something } 更多资料: Android View各种尺寸位置相关的方法探究 PS:本文为转载,首发地址不可考,网上搜到的全是转载的,故不能贴出原地址,如果你是作者可以留言原地址或者要求删除
使用场景 在重写ListView的BaseAdapter时,我们常常在getView()方法中复用convertView,以提高性能。...convertView在Item为单一的同种类型布局时,能够回收并重用,但是多个Item布局类型不同时,convertView的回收和重用会出现问题。...比如有些行为纯文本,有些行则是图文混排,这里纯文本行为一类布局,图文混排的行为第二类布局。单一类型的ListView很简单,下面着重介绍一下ListView包含多种类型视图布局的情形。...2.ListView包含不同Item的布局 我们需要做这些工作: 1)重写 getViewTypeCount() – 该方法返回多少个不同的布局 2)重写 getItemViewType...(int) – 根据position返回相应的Item 3)根据view item的类型,在getView中创建正确的convertView 3.案例 import java.util.ArrayList
文章目录 一、PercentRelativeLayout 百分比布局方案 二、将输出结果设置到组件标签中 参考文档 : 设备兼容性概览 屏幕兼容性概览 支持不同的像素密度 声明受限屏幕支持 约束布局 bias...【约束布局】ConstraintLayout 屏幕适配案例 ( 使用代码生成约束布局控件属性 ) 博客 ; 约束布局百分比布局完整方案参考 【Android 屏幕适配】屏幕适配通用解决方案 ⑥ ( 约束布局...ConstraintLayout 百分比布局方案 | 将设计稿尺寸自动转为约束布局百分比标签属性 | 将输出结果设置到组件标签中 ) 博客 ; 一、PercentRelativeLayout 百分比布局方案...---- 使用如下程序 , 输入 PercentRelativeLayout 布局的 宽度 , 高度 // 给出中心点坐标,图片宽高,屏幕宽高,计算出该图片的位置 // 屏幕宽高 float...PercentRelativeLayout 布局中的子组件的标签属性 ; 完整代码如下 : public class BoundaryCaculate { public static void main
在以下场景中尤其要注意: 自行渲染界面元素或需要特定的窗口尺寸; 应用需要访问独占硬件设备,比如摄像头和麦克风。...设备的放置方式使屏幕的一部分处于舒适的观看角度,而屏幕的另一部分则放在平稳的台面上,使其非常适合各种交互元素。...开启新窗格时,之前创建的窗格将移至屏幕外。此示例中,如果现有分块显示 Activity A 和 B,而您需要将新的 Activity C 在一侧显示,则会创建第二个分块显示 B 和 C。...接下来我们聊聊在 Chrome 操作系统以及 Android 平板电脑和可折叠设备中避免应用出现在兼容模式中所需要做到的重要的几件事: △ 运行在开放形式模式充分利用屏幕空间 为不同的设备类型提供合适的大屏幕布局...在新的版本中可以利用 Activity 内嵌 和测试 API 进而简化大屏幕布局维护。 别忘了加入美观的大屏幕布局,并添加键盘、鼠标和其他输入支持。
(keyCode, repeatCount, event); } Android onTouchEvent, onClick及onLongClick的调用机制 针对屏幕上的一个View控件,Android...在Android中,一次用户操作能够被不同的View按次序分别处理,并将全然响应了用户一次UI操作称之为消费了该事件(consume),那么Android是按什么次序将事件传递的呢?...仅仅有搞清楚事件触发和传递的机制才有可能保证在界面布局非常复杂的情况下,UI控件仍然能正确响应用户操作。 1....这三个事件标识出了最主要的用户触摸屏幕的操作,含义也非常清楚。...从Android的源码中能看到基于这样的不同重要性的理解而实现的一些交互机制,SDK中也有明白的提及,比如在ViewGroup的onInterceptTouchEvent方法中,假设在ACTION_DOWN
Android手机适配是非常让人头疼的一件事,尤其是图片,android为了做到是适配提供了很多文件夹来存放不同大小的图片,比如:drawable-ldpi、drawable-mdpi、drawable-hdpi...由此我们采用与分辨率无关的度量单位来开发程序就能够解决这个问题。Android应用开发支持不同的度量单位。 1.相关概念 屏幕密度:指的就是单位英寸面积上的像素点数,与分辨率是两个不同的概念。...的字号最好使用 sp 做单位,而且查看TextView的源码可知Android默认使用sp作为字号单位。...将dip作为其他元素的单位。...图片放在drawable中,等同于放在drawable-mdpi中,原因为:drawable目录不具有屏幕密度特性,所以采用基准值,即mdpi 图片放在某个特定drawable中,比如drawable-hdpi
做为一个不那么像初学者的初学者,我注意到Android已经提供了检测屏幕方向的API,而我在《Android 4编程入门经典——开发智能手机与平板电脑应用》书中经常看到的做法却是比较屏幕的宽度和高度以此来判断是横向还是纵向模式...书中做法 import android.view.Display; import android.view.WindowManager; @Override public void onCreate(...); } else { //---portrait mode--- Log.d("Orientation", "Portrait mode"); } } 而一般利用Android...提供的方法可以这么做 if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
大家好,又见面了,我是你们的朋友全栈君。 Android开发为适配不同屏幕需要在资源文件中添加多套图片或者多套布局文件,这篇文章讲解多套图片。...1屏幕大小 智能手机普及,屏幕也随之越来越大,从经典的iPhone 4的3.5英寸到iphone XR 6英寸多,Android手机也逐渐进入了6.x英寸行列。...android将实际的屏幕密度进行划分(low,medium,high,and extra high,extra extra high) 一般情况下的普通屏幕:ldpi是120dpi,mdpi是160dpi...,Android中获取的屏幕密度,不是对应屏幕真实的屏幕密度值,类似1280720和1290730都会被认为是720p的手机,屏幕密度都是2.0。...dp与px的转换 系统密度为160dpi的中密度手机屏幕为基准屏幕,即320×480的手机屏幕中,1dp=1px。
这里汇总的是自己在工作过程中,使用过的常见空间布局,记录在这里。详情如下: 1....三个控件,分别处于左,中,右 要点:使用RelativeLayout 1 <RelativeLayout 2 android:layout_width="match_parent..." 3 android:layout_height="wrap_content" 4 android:orientation="horizontal...android:layout_height="wrap_content" 8 android:gravity="center" 9...两个控件,分别处于左右 要点:使用layout_weight="1"的TextView撑开中间,将两个控件挤到两边 1 <LinearLayout 2 android
Android中的通知(Notification)是Android中的重要一部分,应用程序通过通知来提醒用户或者向用户传达信息,下面让我们来看一下怎么在我们的程序中使用通知和自定义通知的布局。...:text="发送第二种通知"/> 布局中的两个按钮分别用来发送系统布局的通知和我们自定义布局的通知,接下来是我们自定义的通知布局,新建一个布局文件notification.xml..."/> 这个布局中我们采用横向布局,用来模拟一个音乐播放器的横栏,两个按钮分别对应 播放/暂停,下一曲 。...,总体思路是对布局文件中的两个按钮进行事件处理,定义 notifyFirstNotification() 方法和 notifySecondNotification() 方法分别用于创建系统提供布局的通知和自定义布局的通知...言归正传,这个广播干什么用的呢:在自定义通知布局中我们要对两个按钮进行事件处理,在自定义通知布局中,我们必须使用RemoteViews的对象来对布局文件中的两个按钮进行事件处理,而 RemoteViews
一.window相关 网页正文部分上:window.screenTop 网页正文部分左:window.screenLeft 屏幕分辨率的高:window.screen.height 屏幕分辨率的宽:...window.screen.width 屏幕可用工作区高度:window.screen.availHeight 屏幕可用工作区宽度:window.screen.availWidth 二.body相关...网页被卷去的高:document.body.scrollTop 网页被卷去的左:document.body.scrollLeft 三.滚动相关 scrollHeight: 获取对象的滚动高度。...scrollWidth: 获取对象的滚动宽度 document.documentElement.scrollTop 垂直方向滚动的值 四.位置精确定位 scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离...相对容器的水平坐标 event.offsetY 相对容器的垂直坐标 六.width/clientWidth/offsetWidth以及height之间区别 width是指可见内容的宽 height是指可见内容的高
大家好,又见面了,我是你们的朋友全栈君。 在进行UI布局的时候,可能经常会用到 android:gravity 和 android:layout_Gravity 这两个属性。...他们的区别在于: android:gravity 属性是对该view中内容的限定.比如一个button 上面的text....下面回到正题, 我们可以通过设置android:gravity=”center”来让EditText中的文字在EditText组件中居中显示;同时我们设置EditText的android:layout_gravity...- 那么上面是通过布局文件的方式来设置的。...Android:layout_gravity属性 lp.gravity = Gravity.RIGHT; button.setLayoutParams(lp); //此处相当于布局文件中的Android
HTML 标签 定义和用法 可定义文档中的分区或节(division/section)。 标签可以把文档分割为独立的、不同的部分。它可以用作严格的组织工具,并且不使用任何格式与其关联。...如果用 id 或 class 来标记 ,那么该标签的作用会变得更加有效。 用法 是一个块级元素。这意味着它的内容自动地开始一个新行。实际上,换行是 固有的唯一格式表现。...可以对同一个 元素应用 class 或 id 属性,但是更常见的情况是只应用其中一种。...这两者的主要差异是,class 用于元素组(类似的元素,或者可以理解为某一类元素),而 id 用于标识单独的唯一的元素。...div元素布局 完整代码 规定各个模块样式,DIV可不用加 width代表宽度,height代表高度 ,background代表背景颜色, float代表排序方式, clear 清除左右排序让footing
领取专属 10元无门槛券
手把手带您无忧上云