这是一篇很初级也很简单的教程。
为什么要用纯 Java 代码来实现 Android UI 界面
众所周知在 Android 开发时应用的 UI 界面一般是通过 XML 文件构建的。目前主流的 Android Studio 和
Eclipse
都可以通过鼠标拖拽控件的方式很高效的来搭建 UI 界面。那么为什么还要使用纯 Java 代码的方式来实现 UI 界面呢?
其实还是有一些特殊的场合需要使用这种纯 Java 代码的方式来实现 UI 界面的。例如 SDK 的开发。SDK 一般都是交付给第三方来使用的,要求接入流程尽可能简单,工作量尽可能少,最好直接一个 jar 包丢给对方,像这种情况纯 Java 代码来实现 UI 界面的方式就显得尤为重要了。
废话就到这,下面通过我工作中遇到的一个例子来展示一下如何用纯 Java 代码来实现 Android 的 UI 界面。
Android UI 界面需求
如上图所示,我们需要使用纯 Java 代码来实现这样一个 UI 界面,它的要求是:
背景黑色半透明
居中一个占整个屏幕 76% 的 ImageView 用于显示图片
居中的 ImageView 要有一个白色的带圆角的边框
居中的 ImageView 右上角还要有一个圆形的关闭按钮
整个界面要求只能使用纯 Java 代码实现
除了 ImageView 中显示的图片以外,不能使用其他图片素材
我们一步一步按照要求用纯 Java 代码来实现这个 UI 界面。
dp 与 px 的转换
至于 dip 、 dp 、 px 、 sp 这些概念就不在这里介绍了,大家自行搜索。这里要注意的是,在使用 XML 做 UI 界面布局时一般会使用 dp 做单位,但是在纯 Java 实现中方法参数都使用 px 做单位,所以这里就牵扯到 dp 和 px 之间的转换。直接放出代码:
private int dp2px(float dp) {final float scale = getResources().getDisplayMetrics().density;return (int) (dp * scale + 0.5f);}
整体布局
这里就不具体介绍 Android 布局的相关知识了,直接说怎么做。这里用了线性布局 LinearLayout ,具体布局方式是
先部署一个根布局 LinearLayout
在根布局中从上到下嵌套三个 横向 LinearLayout ,其中头部和底部的 layout_weight=12 中间的 layout_weight=76
在上一步嵌套的中间的 layout_weight=76 的布局中从左到右再嵌套三个 纵向 LinearLayout ,其中最左