首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java游戏编程不完全详解-2(1万6千字吐血推荐)

    一般显示器的尺寸比率是4:3,这表示高度显示是宽度的四分之三。一般宽屏使用16:9的比率。老式的CRT显示器可完成实现以上策略,因为它使用电子光栅来表示像素。...)不能修改调色板(我没有试过更高版本的,因为我开游戏客户端是使用C++来实现的,因为实际开发中不用的话,我就不研究 ),也不能描述这些是什么。...的paint()方法 //setFullScreenWindow方法会让当前屏幕显示进入全屏幕模型,或者返回容器化模型状态。...该方法将 paint 转发给任意一个此容器子组件的轻量级组件 在窗体中显示字符串。在显示全屏幕之后,在屏幕中绘制文字!...(){ return device.getFullScreenWindow(); //返回全屏幕对象窗体 } /** 功能:返回当前全屏幕的宽度值。

    1.9K30

    手把手教你读懂源码,View的绘制流程详细剖析

    上一篇文章我们分析了View的加载流程,今天我们继续来深入学习View的绘制流程,接着上次的View绘制开始,同样使用的是Android 7.1源码。...DecorView的onMeasure方法 再看FrameLayout的onMeasure方法,主要是遍历所有的子View进行测量,然后设置高度、宽度。 ?...FrameLayout的onMeasure方法 首先是调用measureChildWithMargins方法来测量每一个子视图的宽度和高度,并且找到这些子视图的最大宽度和高度值,保存在变量maxWidth...经过上述两步检查之后,FrameLayout类的成员函数onMeasure就得到了当前视图的宽度maxWidth和高度maxHeight。...View的重载draw方法 该方法主要判断是否有绘制缓存,如果有直接使用缓存,如果没有重复调用上面的draw()方法。 然后是第五步,绘制滑动时的渐变效果: ?

    1.8K100

    Android精通:TableLayout布局,GridLayout网格布局,FrameLayout帧布局,AbsoluteLayout绝对布局,RelativeLayout相对布局

    ,让该列填满这一行所有的剩余空间,也就是在整个父宽度的情况在,放几个按钮,剩下的空间宽度将用第二列填满,代码如下: tablelayout <TableLayout android:id="@+id...,如果屏幕的额宽度包容不下的话,就会拿第二列进行收缩,就是压扁,拉长。...注意事项:低版本sdk是如何使用GridLayout的呢?要导入v7包的gridlayout包即可,因为GirdLayout是4.0后才推出的,标签代码。...四大控制属性.png 由于绝对布局不常见,不常用,因为在不同大小的适配屏幕上的位置直观上会变化,适应能力差,所以不建议使用。...下面我将继续对Java、 Android中的其他知识 深入讲解 ,有兴趣可以继续关注 小礼物走一走 or 点赞

    4.7K20

    Android入门教程(三)-安卓UI文档教程

    对Android五大布局的描述,分别是 FrameLayout (框架布局),LinearLayout (线性布局),AbsoluteLayout (绝对布局),RelativeLayout (相对布局...FrameLayout 框架布局 FrameLayout 布局的使用效果,就是所有布局里的控件都会自动往左上角放置。所有的元素都会依次覆盖上一次的元素。...android中的 fill_parent 表示宽度是屏幕的宽度,wrap_content 这个表示大小刚好是文本的大小,表示高度,就是该字体有多高,文本框就有多高,同理宽度也一样。...” 这两个属性来描述该控件的高度和宽度,高度为文本即是字体高度,宽度即是屏幕的宽度。...// 水平居中 center_vertical //垂直居中 fill:充满容器 |fill_horizontal//水平方向充满容器 |fill_vertical //垂直方向充满容器 代码例子可以参考

    80720

    Android入门教程(三)

    对Android五大布局的描述,分别是 FrameLayout (框架布局),LinearLayout (线性布局),AbsoluteLayout (绝对布局),RelativeLayout (相对布局...FrameLayout 框架布局 FrameLayout 布局的使用效果,就是所有布局里的控件都会自动往左上角放置。所有的元素都会依次覆盖上一次的元素。...android中的 fill_parent 表示宽度是屏幕的宽度,wrap_content 这个表示大小刚好是文本的大小,表示高度,就是该字体有多高,文本框就有多高,同理宽度也一样。...” 这两个属性来描述该控件的高度和宽度,高度为文本即是字体高度,宽度即是屏幕的宽度。...// 水平居中 center_vertical //垂直居中 fill:充满容器 |fill_horizontal // 水平方向充满容器 |fill_vertical //垂直方向充满容器 代码例子可以参考

    81720

    Android 实现视屏播放器、边播边缓存功能、外加铲屎(IJKPlayer)

    例如根据旋转信息,判断TextureView界面的比例是横的还是竖的,如果View是竖的,而视频也是竖的,那么因为旋转了90度,那么让视频的高显示为屏幕的宽度,从新计算旋转后的宽度。...深夜码字不易,不知道为什么每次这个时候老婆的意见很大啊。...为什么用它?因为谷歌到的时候刚好看到,缘分啊懂吗。 这里需要个关注的是手动点击和自动旋转之间的冲突,主要看代码吧,老婆开始催我了 (ノಠ益ಠ)ノ彡┻━┻。...接入简单,使用简单,你可以趾高气扬的和产品说,这个so easy了。...HttpProxyCacheServer proxy = getProxy(); //注意不能传入本地路径,本地的你还传进来干嘛。

    3.2K90

    Android应用界面开发——布局

    FrameLayout 帧布局容器为每个加入其中的组件创建一个空白的区域(称为一帧),每个子组件占据一帧,这些帧都会根据gravity属性执行自动对齐。...在表格布局管理器中,可以为单元格设置如下3种行为方式: Shrinkable:该列的所有单元格宽度可以被收缩,以保证该表格能适应父容器的宽度。...Stretchable:该列的所有单元格的宽度可以被拉伸,以保证组件能完全填满表格空余空间。 Collapsed:该列的所有单元格会被隐藏。...AbsoluteLayout 运行Android应用的手机往往千差万别,因此屏幕大小、分辨率都有可能有很大差异,使用绝对布局很难兼顾不同屏幕大小、分辨率问题,因此AbsoluteLayout布局已经过时...不要嵌套多个使用Layout_weight属性的LinearLayout。 非常琐碎的一些知识点,不一定能全部记住,但应该尽量理解,需要的时候可以查看。

    1.6K20

    Android布局详解之一:FrameLayout

    完全没有错不敢说,只是把当年漏写的一些内容再补进去吧。 评论不删不改,大家自己看吧。 我写的文章,基本都是面向新手的,所以没有很多高深的玩法(我自己也不擅长啦,我也不是高手)。...所以新手看我的文章,入门即可,高深的内容不在我这里,我的庙小,装不下大神。 再版修正说明: 首先要感谢指出我错误的朋友。前一篇修正说明,写的借口比较多,忘了道歉,态度不好,请多多包涵。...是“fill_parent”,也就是说,我们文本框的宽度就是屏幕的宽度。那么android:gravity=”right”文本靠右,而文本框本身还是左上堆叠在一起的。...其实是因为android:layout_width=”fill_parent”这个属性造成的。文本框的宽度是充满父控件,所以文字不会到右边去。...当你需要自己写一个View的时候,在View里面已经完成了你的逻辑(例如游戏^_^),那么这个View只需要一个容器放置,就可以使用FrameLayout了。

    2.7K20

    Android 实现视屏播放器、边播边缓存功能、外加铲屎(IJKPlayer)

    例如根据旋转信息,判断TextureView界面的比例是横的还是竖的,如果View是竖的,而视频也是竖的,那么因为旋转了90度,那么让视频的高显示为屏幕的宽度,从新计算旋转后的宽度。...深夜码字不易,不知道为什么每次这个时候老婆的意见很大啊。...为什么用它?因为谷歌到的时候刚好看到,缘分啊懂吗。 这里需要个关注的是手动点击和自动旋转之间的冲突,主要看代码吧,老婆开始催我了 (ノಠ益ಠ)ノ彡┻━┻。...接入简单,使用简单,你可以趾高气扬的和产品说,这个so easy了。...HttpProxyCacheServer proxy = getProxy(); //注意不能传入本地路径,本地的你还传进来干嘛。

    3K30

    过时但仍值得学习的选项卡TabHost

    一、TabHost概述 TabHost是一种非常实用的组件,TabHost可以很方便地在窗口上放置多个标签页,每个标签页相当于获得了一个与外部容器相同大小的组件摆放区域。...TabHost是整个Tab的容器,包含TabWidget和FrameLayout两个部分,TabWidget是每个Tab的标签,FrameLayout是Tab内容。...与TabHost结合使用的有如下2个组件。 TabWidget:代表选项卡的标题条。 TabSpec:代表选项卡的一个Tab页面。...如果程序需要监控TabHost里当前标签页的改变,则可以为它设置 TabHost.OnTabChangeListener 监听器。 接下来通过一个简单的示例程序来学习TabHost的使用。...继续使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建tabhosttab_layout.xml文件,在其中填充如下代码片段

    1.7K90

    在 SwiftUI 中实现视图居中的若干种方法

    ,Text 将只能使用 HStack 三分之一的宽度。...().fill(.clear)在使用 SwiftUI 进行开发的过程中,Color、Rectangle 等经常被用来实现对容器的等分操作。...center 的对齐指南,相当于 .frame(width: 300, height: 60,alignment: .center) .background(.pink)布局逻辑:使用 FrameLayout...布局容器对 Text 进行布局FrameLayout 给 Text 的建议尺寸为 300 x 60Text 与占位视图( 空白视图的尺寸为 300 x 600 )按对齐指南 center 进行对齐这是我个人最喜欢使用的居中手段...我为本文这种通过多种方法来解决一个问题的方式添加了【小题大作】标签,目前使用该便签的文章还有:在 Core Data 中查询和使用 count 的若干方法[6]、在 SwiftUI 视图中打开 URL

    9K40

    Android布局详解:FrameLayout

    完全没有错不敢说,只是把当年漏写的一些内容再补进去吧。 评论不删不改,大家自己看吧。 我写的文章,基本都是面向新手的,所以没有很多高深的玩法(我自己也不擅长啦,我也不是高手)。...所以新手看我的文章,入门即可,高深的内容不在我这里,我的庙小,装不下大神。 再版修正说明: 首先要感谢指出我错误的朋友。前一篇修正说明,写的借口比较多,忘了道歉,态度不好,请多多包涵。...“我的庙小,装不下大神”这句话其实是送给这些朋友的。...是“fill_parent”,也就是说,我们文本框的宽度就是屏幕的宽度。那么android:gravity=”right”文本靠右,而文本框本身还是左上堆叠在一起的。...当你需要自己写一个View的时候,在View里面已经完成了你的逻辑(例如游戏^_^),那么这个View只需要一个容器放置,就可以使用FrameLayout了。

    1.2K10

    SwiftUI 布局 —— 尺寸( 下 )

    frame 视图修饰器本质上是对布局容器 _FrameLayout 的包装,本例中我们将自定义的布局容器命名为 MyFrameLayout ,视图修饰器命名为 myFrame 。...对齐[5] 一文中我们已经介绍了“对齐”是发生在容器中子视图之间的行为,因此对于 _FrameLayout 这种开发者只提供一个子视图同时又需要对齐的布局容器,我们需要通过在 modifier 中添加一个...这一版本的 frame 有如下功能: 当两个维度都设置了具体值时,将使用这两个值作为 _FrameLayout 容器的需求尺寸,以及子视图的布局尺寸 当只有一个维度设置了具体值 A,则将该值 A 作为..._FrameLayout 容器在该维度上的需求尺寸,另一维度的需求尺寸则使用子视图在该维度上的需求尺寸( 以 A 及 _FrameLayout 获得的建议尺寸作为子视图的建议尺寸 ) func sizeThatFits...SwiftUI 布局机制的窗口,无论你在未来的工作中是否需要使用 Layout 协议创建自定义布局容器,掌握它都将获得莫大的好处。

    3K40

    【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现

    必须先调用View.measure()方法, 才可以, 否则也获取不到组件的宽高; 注意(特例) : 如果组件宽度或高度设置为 fill_parent, 使用 getMeasuredHeight() 等方法获取宽度和高度的时候...帧布局FrameLayout 帧布局容器为每个组件创建一个空白区域, 一个区域成为一帧, 这些帧会根据FrameLayout中定义的gravity属性自动对齐; 1....组件增加行 : 如果直接向TableLayout中添加组件, 就相当于直接添加了一行; 列宽 : TableLayout中, 列的宽度由该列最宽的单元格决定, 整个表格的宽度默认充满父容器本身; 2....收缩 :Shrinkable, 如果某列被设为Shrinkable, 那么该列所有单元格宽度可以被收缩, 保证表格能适应父容器的宽度; b....绝对布局介绍  绝对布局特点 : 在绝对布局中,组件位置通过x, y坐标来控制, 布局容器不再管理组件位置, 大小, 这些都可以自定义;  绝对布局使用情况 : 绝对布局不能适配不同的分辨率, 屏幕大小

    3.1K40

    SwiftUI 布局 —— 尺寸( 上 )

    ,当前容器的父视图将使用该尺寸在它的内部进行摆放 return cache.cropBounds.size } 根据建议尺寸内容的不同,我们可以将建议尺寸细分为四种建议模式,在 SwiftUI...某些布局容器(比如 VStack、HStack ),会通过为其子视图代理提供最小化模式的建议尺寸以获取子视图在特定维度下的最小需求尺寸( 例如对视图使用了 minWidth 设定 ) 最大化模式 该模式的建议尺寸为...需求尺寸为 infinity * infinity 明确尺寸模式 需求尺寸为建议尺寸 未指定模式 需求尺寸为 10 x 10( 至于为什么是 10 x 10 ,下文中的理想尺寸将有更详细的说明 ) Text...( 文本不折行、不省略 ) 85.33 x 20.33( 上文例子中尺寸 ) 明确尺寸模式 如果建议宽度大于单行显示的需要,则需求宽度返回单行实现显示尺寸的宽度 85.33 ;如果建议宽度小于单行显示的需要则需求宽度返回建议尺寸的宽度...;如果建议高度小于单行显示的高度,则需求高度返回单行的显示高度 20.33;如果建议高度高于单行显示的高度且宽度大于单行显示的宽度,则需求高度返回单行显示的高度 20.33 …… 未指定模式 当两个维度均为未指定模式时

    5.5K20
    领券