手机的尺寸: 屏幕对角线的长度,单位为英寸(2.54cm)手机的分辨率: 屏幕能显示的像素的数量, 一般用在长方向上数量*宽方向上数量来表达手机的像素密度: pixels per inch,也称PPi,即每英寸屏幕能显示的像素数,像素密度越大,显示画面细节就越丰富。计算:像素密度={1+√[(长度像素数-1)^2+(宽度像素数-1)^2]}/屏幕尺寸DPI: Dots Per Inch(每英寸所打印的点数或线数)的缩写,用来表示打印机打印分辨率, 但有时也会用dpi来代指...
原文地址:http://android.xsoftlab.net/training/keyboard-input/index.html引言文本框接收到焦点时,Android系统会在屏幕上显示一个软键盘。为了提供最佳的用户体验,你可以指定相关输入类型的特性,以及输入法应当如何展现。除了屏幕上的软键盘之外,Android还支持实体键盘,所以APP如何与各种类型的键盘交互这件事情,就变得很重要了。指定输入的类型每一个文本框必定只有一种输入类型,比如一个电子邮件地址,一个电话号码或者...
1. Android App主页结构存在主要的App组织结构:1) Tab页 a) Android Tab标签在顶部 b) 模仿iOS Tab标签在底部,最后一个是更多2) 侧滑菜单 Tab优点:直观缺点:占空间 menuDrawer优点:节省空间缺点:不直观 时间 2侧滑菜单:2.1 SlidingMenu 主页面(包括Actionbar)完整滑动 2.2 menuDrawer 内容部分被滑动菜单遮住 GMail、GoogleMusic、Google+ 3. GoogleStyle 1. Actionbar 2. menuDrawer 3. 下...
package com.hanqi.test5;import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.v7.app.AppCompatActivity;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.DatePicker;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Switch;
import android.widget.Ti...
写在前面的话:这一章很有价值,想要提升安卓知识的一定要读一读。不做安卓的也可以得到其它方面的提升。原文地址:http://android.xsoftlab.net/training/custom-views/making-interactive.htmlUI的绘制只是自定义View的一部分。你还需要使View可以以一种接近真实世界的反馈方式来响应用户的输入事件。虚拟世界中的对象应该总是以真实世界中对象的行为方式来行动。比如说,图像不应该从某处突然出现或消失,因为真实世界中的图像总...
2013年Google I/O 大会首次发布了Android Studio IDE(Android平台集成开发环境)。它基于Intellij IDEA 开发环境,旨在取代Eclipse和ADT(Android开发者工具)为开发者提供更好的开发工具。既然Google一直在努力推广,相信不久以后就有望赶上Eclipse。 ----摘要相比Eclipse,Android Studio IDE有自己优缺点:优点:对UI界面设计和编写代码有更好地支持,可以方便地调整设备上的多种分辨率。同样支持ProGuard工具...
原文地址:http://android.xsoftlab.net/training/connect-devices-wirelessly/nsd-wifi-direct.html本阶段的第一节课 Using Network Service Discovery 展示了如何搜索本地网络服务。然而,使用WI-FI P2P搜索服务可以直接搜索附近的设备,而不需要专门通过本地网络。这项特性使得在没有本地网络或者热点的情况下还可以在不同的设备间进行通信。虽然这里的API与NSD的API的目的很相似,但是实现的过程却完全不同。这节课展示了如何通...
1 横竖屏切换:
文件名同样。 目录不同.
layout-port/ 代表竖屏
layout-land/ 代表横屏
layout/ 代表不论什么没有修饰符的layout目录。
终于的实现 横竖品方案:
两套 同样名称,单目录不同的布局。
2 横竖屏切换的时候:
代码须要进行 方向 的推断。
由于使用了不同的layout.xml
因此须要代码检查。
3 对于尺寸的设置。 建议採用:layout + style + dimension 的形式layout 横竖屏style 来设置一下尺寸无法描...
原文地址:http://developer.android.com/training/displaying-bitmaps/manage-memory.html除了在上一节中描述的步骤之外,还有一些细节上的事情可以促进垃圾回收器的回收及位图的复用。其推荐的策略取决于Android的目标版本。示例APP BitmapFun展示了如何使应用程序在不同的版本上高效的工作。为了给这节课的知识奠定一些基础,下面有一些Android系统如何管理位图内存的一些改进需要了解:在Android 2.2之前,当垃圾回收器回收时,...
原文地址:http://android.xsoftlab.net/training/custom-views/optimizing-view.html现在已经完成了一个拥有良好设计的View,它即可以响应手势,又可以在状态之间过渡。为了避免View有卡顿的感觉,需要确保动画始终是按照每秒60帧的频率执行的。尽可能的降低频率为了使View更加流畅,需要从频繁调用的方法中剔除不必要的代码。首先从onDraw()方法开始,在该方法中动刀会有明显的流畅感。尤其是应该移除onDraw()方法中的内存分配代...
原文地址:http://android.xsoftlab.net/training/displaying-bitmaps/cache-bitmap.html往UI界面中加载单张图片的过程是很简单的,然而如果需要在某个时刻同时加载大量的图片,那么这事情就有些复杂了。在很多情况下,比如使用了ListView、GridView或者是ViewPager来展示一定数量的图片,在本质上这些情况下,屏幕的快速滑动会导致大量的图片被集中展示在屏幕上。类似这样通过回收移除到屏幕之外的子View的组件会抑制内存的使用(也...
原文地址:http://android.xsoftlab.net/training/notify-user/index.html引言通知用于在有事件发生时,将事情以更便捷的方式展示给用户。用户可以在他们方便的时候直接与通知交互。Notifications design guide课程讲述了如何设计有效的通知以及何时去使用它们。这节课将会学习如何实现通用的通知设计。构建通知这节课的实现主要基于NotificationCompat.Builder类,NotificationCompat.Builder类属于支持库。开发者应该使用Notific...
如何从Linux起步,开发出搭载Android系统并且具备深度定制和软硬整合能力特色产品,是本课程解决的问题。课程以Android的五大核心:HAL、Binder、Native
Service、Android Service(并以AMS和WMS为例)、View System为主轴,一次性彻底掌握Android的精髓。之所以是开发Android产品的必修课,缘起于:1,
HAL是Android Framework&Application与底层硬件整合的关键技术和必修技术;2,
Native Service 对上层来说代表了硬...
原文地址:http://android.xsoftlab.net/training/keyboard-input/visibility.html当输入的焦点进入或者离开文本框时,Android会适时的显示或隐藏输入法。系统还会决定UI及文本框如何出现在输入法的上方。比如,当垂直方向上的可用空间非常紧张时,那么文本框可能就会填充输入法上方的整个区域。对于大多数的APP来说,这样的默认行为是它们所需要的。不过在另一些情况中,你可能需要直接控制输入法的显示方式,以及需要在输入法可见...
前言
众所周知,Xamarin应该是.net下的跨平台开发工具。2016年之前还处于收费状态,后被微软收购后开源。但似乎有个现象,开源后的Xamarin发展似乎有些停滞,而且维护Xamarin的团队又很固执不愿变通。社区多次建议UI层应该统一绘图引擎,而不是映射原生控件。
Xamarin.Forms给人的感觉就是性能差,动画僵硬,效果不好实现。以至于谷歌的Flutter火爆之后,Xamarin社区很多人便转移阵地,你在百度搜索Xamarin,第一个关键词就是xamar...