framelayout

Android常用布局

 ̄綄美尐妖づ 提交于 2021-01-10 10:23:04
#Android常用布局介绍 Android提供了5种布局,这5种布局分别是: FrameLayout(框架布局)、LinearLayout(线性布局)、RelativeLayout(相对布局)、TableLayout(表格布局)、AbsoluteLayout(绝对布局)等。 ##Android表示单位长度的方式通常有三种表示方式: px:表示屏幕实际的象素。例如,320*480的屏幕在横向有320个象素,在纵向有480个象素。 dp(dip): 是屏幕的物理尺寸。大小为1英寸的1/72。 sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。 如果设置表示长度、高度等属性时可以使用dp或sp;如果设置字体,需使用sp。 dp与密度无关,sp除了与密度无关外,海还与cale无关。 如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。 ##布局中常用的属性: layout_margin是控件边缘相对于父控件的边距 layout_padding是控件内容相对于控件边缘的边距 android:gravity与android:layout_gravity的区别:android:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的对齐方式 <br/> #线性布局LinearLayout:

Android开发之FrameLayout布局

被刻印的时光 ゝ 提交于 2020-04-12 17:55:44
Android开发之FrameLayout布局 在Android开发中,FrameLayout是所有布局容器中最简单的一种,在前边博客中有介绍关于Android开发中线性布局LinearLayout的应用。LinearLayout采用的是线性平铺的布局模式,FrameLayout也被称为帧布局。 LinearLayout应用介绍地址: http://my.oschina.net/u/2340880/blog/740714 。 FrameLayout简单理解,可以将布局容器理解为一个单元素栈,先放入的视图在栈底,后放入的视图在栈顶,后放入的视图会覆盖先放入的视图。并且,FrameLayout不能够设置其内视图的位置,默认都是从左上角开始布局,这个布局模式在简单的重叠界面中使用十分方便。 使用代码进行FrameLayout布局示例如下: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FrameLayout frameLayout = new FrameLayout(this); setContentView(frameLayout); //添加子视图 TextView textView1 = new TextView(this);

Android 五大布局

六月ゝ 毕业季﹏ 提交于 2020-03-15 12:53:45
Android 对用五大布局对象,它们分别是FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局). FrameLayout: FrameLayout是最简单的一个布局对象。它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象 — 比如,一张你要发布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。 我们看一下效果图: 其中Main.xml 代码如下: Java 代码 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- 我们在这里加了一个Button按钮 --> <Button android:text="button" android:layout

Android 五大布局

只愿长相守 提交于 2020-03-15 12:53:18
Android 对用五大布局对象,它们分别是FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局). FrameLayout: FrameLayout是最简单的一个布局对象。它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象 — 比如,一张你要发布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。 我们看一下效果图: 其中Main.xml 代码如下: Java 代码 <?xml version= "1.0" encoding= "utf-8" ?> <FrameLayout xmlns:android= "http://schemas.android.com/apk/res/android" android:layout_width= "fill_parent" android:layout_height= "fill_parent" > <!-- 我们在这里加了一个Button按钮 --> <Button android:text= "button" android

Android 性能优化工具之 TraceView

橙三吉。 提交于 2020-03-11 13:11:12
简介 TraceView 是 Android SDK 中内置的一个工具,它可以加载 trace 文件,用图形的形式展示代码的执行时间、次数及调用栈,主要便于我们分析及优化方法的执行。 官方文档 参考: TraceView 使用文档 使用 1. 获取 .trace 报表 第一步:点击Android Studio中的Tools/Android/Android Device Monitor,打开调试界面。 第二步:如下面截图所示,选中要分析的应用包名,点击 Start Method Profiling 按钮,之后就会开始跟踪: 第三步:进入应用内进行操作,操作完毕后,再次点击上面的按钮Stop Method Profiling,等待一会,就会在右边的窗口生成分析的报表,将鼠标上移到红框的文件名处,可以看到保存的位置,我们可以把它保存起来以便之后分析跟踪问题: 2. 分析 .trace 报表 获取完报表之后,我们就可以通过它来分析,这个区域分为三个部分: 红色区域:列出了运行的各个线程。 蓝色区域:线程在一段时间内的运行情况,我们点击有颜色的地方,就可以定位到具体做了哪些操作。 紫色区域:方法调用的具体情况。 前面两个区域都比较好理解,我们主要看一下紫色区域的每一列具体的含义: 上面的表格中,一部分单位是百分比,另一部分是ms,要注意区别,除此之外,有两点需要解释一下:

使用Kotlin开发Android应用(IV):自定义视图和Android扩展

*爱你&永不变心* 提交于 2020-03-11 06:48:21
在读完 扩展函数和默认值 这篇文章之后,那么接下来要介绍什么呢?在本系列 第一篇文章 中我们说过,Kotlin使得Android开发更加简单,本文我们将进一步作介绍。 自定义视图 你应该还记得,在说到Kotlin的局限性时,我们提到了在Kotlin早期版本(M10之前)是不支持自定义视图的,因为当时只能为每个类创建一个构造函数。这通常是足够的,因为使用可选参数,我们可以创建足够多的构造函数变种,例如: class MyClass(param: Int, optParam1: String = "", optParam2: Int = 1) {
 
 init { 
 // Initialization code 
 }
 } 通过这一个构造函数,我们有如下四种方式创建这个类: val myClass1 = MyClass(1) val myClass2 = MyClass(1, "hello") val myClass3 = MyClass(param = 1, optParam2 = 4) val myClass4 = MyClass(1, "hello", 4) 正如你所见,使用可选参数我们得到了一堆的组合。但是通过继承普通Views的方式来创建自定义Views时,我们可能会遇到问题。自定义Views需要重写一个或者多个构造函数以便正常工作,但我们做不到这一点。幸运的是

【Android】每个Activity中加入引导界面

*爱你&永不变心* 提交于 2020-03-11 02:12:59
参考文章 【1】 http://www.cnblogs.com/beenupper/archive/2012/07/13/2589749.html 【2】 http://www.cnblogs.com/beenupper/archive/2012/07/18/2597504.html 功能需求:在初次加载每个Activity时,页面载入不同的引导界面。 思路: 1、每个Activity动作都一样,所以必须封装一个BaseActivity,在onStart()方法中实现加载引导页,并对外提供加载接口。其他Activity extends BaseActivity 2、只需要初次加载时显示引导页,所以引入SharedPreferences,用于保存该Activity是否为初次加载 由于引导过的界面就没必要再次引导了。所以得保存记录。这里采用偏好设置保存,如果该Activity被引导过了,就将它的类全名保存下。 由于偏好设置只能保存键值(key-value)对,所以保存多个类名,我采用|a|b|c这种形式保存为value。 3、显示引导页其实就是展示一个全屏的ImageView,在UI上体现为FrameLayout动态加载一个图层,当不需要时remove 4、怎样获取每个Activity这个啥啥FrameLayout?可以考虑使用DecorView

android webview加载h5 video 全屏按钮禁用的解决方案

风格不统一 提交于 2020-03-07 11:22:32
~~在APP开发的过程中,会碰到需要在WebView中播放视频的需求,下面讲解一下如何在WebView中使用html5播放视频。 1.让视频在各个Android版本能够正常播放 在AndroidManifest.xml中声明HardwareAccelerate的标志,一般是添加在Activity的级别上。代码如下: <activity ... android:hardwareAccelerated="true" > 下面引申一下HardwareAccelerate声明的方式: (a).如果需要声明整个应用都要加速,则在Application级别下面进行声明: < application … android:hardwareAccelerated =“true”> (b).如果需要某个Activity加速,则可以进行下面的声明: <activity ... android:hardwareAccelerated="true" > 或者在代码里面进行动态的声明: getWindow.setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED); ©

使用 Airtest 进行微信小程序自动化测试 (Android & iOS)

女生的网名这么多〃 提交于 2020-02-28 22:52:17
使用Airtest进行Android与iOS的微信小程序自动化测试 1. 简介 随着微信小程序的逐渐普及,针对微信小程序的测试需求也逐渐丰富起来了。现在针对小程序的自动化测试手段比较不完善,针对的平台比较具现化。 本文介绍一下使用Airtest测试框架进行微信小程序自动化测试的方法,并分别介绍在Android和iOS下对详细的使用步骤。 2. 需求 这里我们以星巴克的小程序为例 我们需要 1.打开关闭小程序 2.查看咖啡信息并试图购买 针对这几个需求,我们使用Airtest对小程序进行测试 3.Airtest简介 Airtest的简要介绍可以看这里 https://www.oschina.net/p/airtest http://airtest.netease.com/ 这次我们使用Airtest-Ide,poco,iOS-Tagent,这几个组件完成我们的任务,这些内容均可以在下面找到 https://github.com/AirtestProject 4.开始Android测试 这里使用系统WebView内核: 使用微信聊天框输入此网址打开 http://debugtbs.qq.com/ 或者扫描二维码 选择强制使用系统内核,然后重启微信即可: 注意: Android版本的小程序的 使用的 腾讯TBS浏览器内核 暂时无法使用 我们的工具来访问界面元素

Android布局详解之一:FrameLayout

橙三吉。 提交于 2020-02-13 10:52:31
原创文章,如有转载,请注明出处: http://blog.csdn.net/yihui823/article/details/6702273 FrameLayout是最简单的布局了。所有放在布局里的控件,都按照层次堆叠在屏幕的左上角。后加进来的控件覆盖前面的控件。 在FrameLayout布局里,定义任何空间的位置相关的属性都毫无意义。控件自动的堆放在左上角,根本不听你的控制。 看以下的例子: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="50dip" android:textColor="#ffffff" android:text="第一层"/> <TextView android:layout_width="fill_parent" android:layout