gravity

android UI布局基础

拜拜、爱过 提交于 2020-08-13 09:13:38
屏幕尺寸,屏幕分辨率和屏幕像素密度 屏幕尺寸 :指屏幕的对角线长度。单位为英寸。1英寸=2.54厘米 屏幕分辨率 :水平和垂直方向的像素点的个数。单位是px。1px=1像素点 一般以垂直像素*水平像素,如1280*720. 屏幕像素密度 :指每英寸上的像素点数。单位是dpi。dpi :dot per inch 屏幕像素密度与屏幕尺寸和屏幕分辨率有关 px:像素点,构成图像的最小单位。 dip :device independent pixels (设备独立像素)。也是密度无关像素。以160dpi为基准,1dip=1px dp :与dip相同 sp :专门用于字体的像素单位。设定字体时一般为偶数,如:12 14 16 18 不建议使用奇数,可看android官网说明 android 布局中最多不可超过10个嵌套,会影响打开速度 Android UI 开发分类大致可分为五类: 界面布局开发定义界面的布局 ·控件开发———定义单个界面元素 AdapterView 与Adapter 开发列表显示 U组件开发对话框、通知、菜单等 自定义VieW、图形图像和动画通过代码,自行绘制界面 常用的布局有以下五种: LinearLayout -线性布局 RelativeLayout —相对布局 FrameLayout -—帧布局 TableLayout ——表格布局 ·AbsoluteLayout

android中的布局简要介绍

只谈情不闲聊 提交于 2020-08-12 18:49:27
android 中共有 5 中布局, GridLayout( 网格布局又叫 TableLayout , TableLayout 是 android3.0 的布局格式 ) , FrameLayout( 帧布局 ) , LinearLayout( 线性布局 ) , AbsoluteLayout( 绝对布局 ) , RelativeLayout (相对布局)。 每一个布局文件都对应一个 Android 中的类。可以说每个布局都是类来产生的。 LinearLayout 对应的是 android.widget.LinearLayou 类; GridLayout 布局 对应的是 android.widget.GridLayoutt 类; FrameLayout 布局对应的是 android.widget.FrameLayout 类; AbsoluteLayout 对应的是 android.widget.AbsoluteLayout 类; RelativeLayout 布局对应的 Java 类是 android.widget.RelativeLayout 类。 安卓提供了两种布局的方式, 方式一、通过布局文件 xml ,声明 UI 控件。 方式二:可通过编程的方式在 Java 代码中创建 View 和 ViewGroup 的对象。 在 android 中提供了方便的可视化视图来设计 UI 布局。

Android--- 仿淘宝商品详情页

孤街醉人 提交于 2020-08-12 05:51:58
话不多说---先上效果图: 图1 商品详情页 图2 加入购物车点击事件 需求分析: 图1中主要需要实现的效果: 1.轮播图 2.顶部导航栏的渐变 3.顶部导航栏随着滑动的位置选择对应的值以及点击滑动到对应位置 图2中主要需要实现的效果: 1.界面从底部出场的效果 2.参数选择的瀑布流式效果 技术分析: 图1: 1.轮播图,可以采用自定义(ViewPager的使用),也可以用直接用第三方库。这里我采用的是 https://github.com/youth5201314/banner (这个是在GitHub上,搜banner,排第一的。选这个跟我自己买东西的心态一样,不知道哪个好,买贵的就对了,哈哈哈) 2.顶部导航栏的渐变,这个效果,我是通过滑动监听,在自己划分的几个区域内,设置不同的透明度。“生硬”的实现了渐变的效果,为了不那么生硬透明度基本等距变化。(如果你有更好的实现方法,欢迎骚扰~) 3.第三点,也是通过对滑动监听实现的。 图2: 1.底部出场,只需要设置一个布局参数属性就行 Gravity.BOTTOM ,动画的话就用 overridePendingTransition(R.anim.bottom_static, R.anim.bottom_out); 2.第二个效果,可以使用recyclerview嵌套recyclerview实现

【Unity】天气特效:打雷下雨

末鹿安然 提交于 2020-08-11 05:59:12
文章目录 一.效果展示 二.下雨 三.打雷 一.效果展示 最近在做一款黑暗风的FPS小游戏,看到资源包的demo scene里有雷雨效果,就学了下并用到了自己的游戏里。下面是先效果展示: //移动端gif可以点开来循环播放,但pc端要再看一遍只能刷新… 二.下雨 首先找一张雨点的贴图,做成材质球 shader用legacy shader/particles/additive,选贴图,把颜色改成自己想要的效果(如果选particles/alpha blended会很暗,像我效果图里一样黑色的雨) 创建一个粒子系统,命名为rain,把rotation的x 从-90改成90,粒子就会往下运动 把renderer里的material改成自己新建的材质,粒子就会变成雨点 将shape改成box,就能形成一个类似降雪的效果。根据自己需求,调节scale大小,形成一个降雨区。 勾选color over lifetime,创建一个从透明到不透明的渐变效果 但现在还只是类似下雪的效果,我们需要调节他的速度和密度 duration 和 start lifetime 来调节循环周期和粒子存活时间 start speed和 gravity modifier(重力增强) 调节速度 max particles 调节粒子的密度(模拟雨量大小) rate over time 同时影响了密度和速度

【Android】用AsyncTask实现多线程

亡梦爱人 提交于 2020-08-10 23:39:49
前言 在Android应用开发中,有时我们需要实现任务的同步。Android里的AsyncTask类可以帮我们更好地管理线程同步(异步方式 ),就像Thread类能做的,不过用法比Thread 更简单。 这篇博文包含以下两个部分: 1 、AsyncTask介绍 2 、实例 一、 AsyncTask介绍 在你开发Android应用程序时, 如果在一个Activity里有一个耗时任务(通常是一个子线程),并且这个 任务调用/操作了主线程, 应用就会抛出著名的“ANR” (Application Not Responding)错误。 Figure 1: ANR AsyncTask类可以帮我们解围,使用AsyncTask能让我们正确及简便地使用主线程,即使此时另有一个异步线程被创建。它使得耗时任务可以在后台执行,并在前台(UI线程或主线程)把执行结果展现出来,不必用到Thread类或Handler类。线程间通信也随之变得更简单,优雅。 * 主线程(User Interface Thread UI线程)是在Android里负责和用户界面进行交互的线程。 AsyncTask是一个抽象类,必须被继承才能实例化。有三个泛型参数,分别是: Params , Progress 和 Result : - Params : 传递给执行的任务的参数,也就是 doInBackground 方法的参数。 -

90后郑凡的数学人生!斩获阿里巴巴全球数学竞赛金牌,他要用数学预测地震引发的超级海啸|专访

橙三吉。 提交于 2020-08-08 12:26:37
  郑凡的数学人生,锚定于十几年前的印尼海啸。   2004 年 12 月 26 日,印尼海啸暴发,造成至少 30 万人罹难或失踪。当时年仅 12 岁的上海小学生郑凡,正好在读一本关于海水如何运动的课外书,书里讲到用数学知识可以预测和分析海啸。   正是这次海啸,给了他更多学数学的动力。      图 | 海啸带给人类的灾难(来源:东方 IC)   时隔多年,在 2020 年的阿里巴巴全球数学竞赛颁奖典礼上,获得金奖的郑凡特意在颁奖感言中,提到印尼海啸给自己带来的影响。      图 | 郑凡在颁奖典礼中发言(来源:阿里巴巴达摩院)   如今他在西班牙高等科学研究院做流体力学方面的研究,其中就包括用数学知识去预测海啸。   海啸本身是流体,所以研究海啸必须得懂流体力学。描述流体力学的运动时,可能有人觉得要用一些物理方程,但是数学家们早已把这些方程写出来了。    数学,在预防海啸方面大有可为   从数学角度来看,海啸是一种波动幅度较大的水波,也是一种灾难性海浪。此前该领域的专家们,多是在海面平静时做研究。   不过海面有时会莫名其妙地出现巨浪,目前人类尚不清楚这种浪的起因。有些船只航行在海面上,突然出现翻船事故,很有可能就是因为这种巨浪。   通过卫星观测发现, 这些不明海浪的幅度远超人类想象,这预示着里面可能有一些目前人类还没有掌握的数学难点。   一般来说,地震引起的震动

Android使用RadioGroup自定义Tab样式

本小妞迷上赌 提交于 2020-08-08 06:04:37
1. style.xml <style name="TextBaseStyle"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:textSize">18sp</item> <item name="android:textColor">@color/black</item> </style> <style name="TabBaseStyle" parent="TextBaseStyle"> <item name="android:layout_width">0dp</item> <item name="android:layout_height">match_parent</item> <item name="android:layout_weight">1</item> <item name="android:gravity">center</item> <item name="android:button">@null</item> <item name="android:background">@drawable/tab_bg_selector</item>

一款Android的输入选择框

喜你入骨 提交于 2020-08-07 16:22:47
整理之前项目,发现输入选择框还是很有意思,于是将这个组件单独拉出共享,希望这个组件对大家有用。 代码不是很多,代码里面也有相应的描述。就不做多说明了. 下面先上 MyInputSelection 控件类 1 import android.content.Context; 2 import android.graphics.Color; 3 import android.graphics.Paint; 4 import android.text.Editable; 5 import android.text.TextWatcher; 6 import android.view.Gravity; 7 import android.view.View; 8 import android.widget.EditText; 9 import android.widget.LinearLayout; 10 import android.widget.ScrollView; 11 import android.widget.TextView; 12 13 import com.szjpsj.common.util.UtilJson; 14 15 import org.json.JSONArray; 16 import org.json.JSONObject; 17 18 import java

ML-Agents(六)Tennis

一个人想着一个人 提交于 2020-08-06 09:54:55
目录 ML-Agents(六)Tennis 一、Tennis介绍 二、环境与训练参数 三、场景基本结构 四、代码分析 环境初始化脚本 Agent脚本 Agent初始化与重置 矢量观测空间 Agent动作反馈 Agent手动操控 五、训练 普通训练(不带可变参数) 可变参数设置 一个可变参数训练 两个可变参数训练 总结 ML-Agents(六)Tennis 喜欢的童靴希望大家多多点赞收藏哦~ 这次Tennis示例研究费了我不少劲,倒不是因为示例的难度有多大,而重点是这个示例的训练过程中遇到了许多问题值得记录下来,其次这个训练是一个 对抗训练 ,也是比较有意思的示例。 一、Tennis介绍 首先来看看效果~ OK,可以看到画面中有18个网球场,然后蓝色的球拍和紫色的球拍互相对打。这里注意一下,场景虽然都是3D的,但实际上球拍和球只在球场的中轴线上上下左右移动,也就是说其实换个相机位置的话,这里其实是个二维打球模拟。 当然了,这样算是简化了训练的过程,这个示例大部分所用到的内容和3D Ball差不多,主要有一个可以深化学习的就是 对抗训练 。下面我们来先看一下官方对该示例的参数。 二、环境与训练参数 老规矩,先来看一下官方文档参数: 设定:两个agents控制球拍进行双人游戏,来回击打球过球网 目标:一方agent必须打击球,以使对手无法击回球 Agent:在这个环境中

自己编译JavaFX Scene Builder

这一生的挚爱 提交于 2020-08-05 08:50:28
虽然没有捣鼓JAVAFX,但是 近日发现Oracle官网竟然不提供JAVAFX Scene Builder的下载的。原先发布的2.0版本提示过期,心中一怒。几番寻找发现Scene Builder被迁至OpenJFX中。不知为什么官方不给编译Scene Builder.不管它。 我们首先需要同步OpenJFX源码: hg clone http://hg.openjdk.java.net/openjfx/8u-dev/rt 我们可以使用TorToisHG来进行同步。 同步源码之后,我们可以发现apps/scenebuilder这个目录。哈哈,这就是Scene Builder的源码目录。 然后我们打开NetBeans导入SceneBuilderApp,SceneBuilderkit这两个项目。(SceneBuilderApp依赖于SceneBuilderkit项目) 在NetBeans下构建SceneBuilderApp项目即可。之后再dis/下可以找到SceneBuilderApp.jar和lib/SceneBuilderkit.jar这就是我们需要的。 我们可以将他们拷贝出来。编写个bat运行 start %JAVA8_HOME%\bin\javaw -jar SceneBuilderApp.jar 到此结束。 目前最新版为2.0.1 注意几点: 1.通过JAVA8启动 2