Android适应方案汇总(三)

Android适应方案汇总(三)

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

在Android适应方案汇总(一个)、(两)在。我们理解一些基本概念。
那么详细的开发,我们应该重视起来。
首先,我们需要知道。关键的事实是,这两个适配器:
(1)。这点在单位的使用上用dp、sp以及图片资源存放于不同的drawable目录就能够解决这个问题;
(2)不同尺寸的适配,这点主要靠将相关值以及布局文件放置于不同的目录中来解决。
2.1 values目录
能够在project下创建不同的values目录:values-sw480dp, values-sw600dp, 
values-sw720dp-land等。比方一个控件的宽度,在10寸pad上是10dp,在8寸pad
上是5dp。

这时。你能够定义一个变量。button_width,然后在values-sw600dp
下写<dimen name=”button_width“>5dp</dimen>。在values-sw720-land下写
<dimen name=”button_width“>10dp</dimen>。这样就达到了在不同尺寸pad上,
对应控件大小不一样的效果。
 2.1 layout目录
    假设在不同尺寸设备上展示的布局有明显区别,只用values不同已经难以控制,
那么就能够考虑写不同的布局文件置于不同的layout目录下。android会依据设备
尺寸去载入对应目录下的布局文件。如:layout-sw480dp。layout-sw600dp,
layout-sw700dp等。
 值得注意的是,假设不是非常有必要,尽量採用2.1方案,方便维护。假设尺寸和分辨率都不同。
 那么就要结合(1)、(2)考虑了。

(补充:事实上values目录和layout目录不不过依据尺寸推断。也和分辨率有关,不过在通常情况下。

综合计算考虑。仅依据尺寸推断就能够了:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

600dp的含义是:代表这个设备的最短的那一边。

获取设备的最短边的代码是:Configuration config = getResources().getConfiguration();

int  smallestScreenWidth = config.smallestScreenWidthDp;

这个时候拿smallestScreenWidth 与600想比較就能够知道该设备是否能读取里面的资源了。

  除此之外,为了方便适配,在编码时我们还应该注意什么呢,主要有下面几点:

  (1)多使用权重(android:layout_weight)

  尤其是在tab切换布局,listview title及Item布局等情况下;
  (2)设置宽度和高度时,尽量使用match_parent和wrap_content,避免把控件宽高设死;
  (3)父容器布局选用
  多使用RelativeLayout,FrameLayout。GridLayout等,降低布局层次。

当然,在使用
  权重时,得採用LinearLayout;
    (4) 在xml里,设置高度、宽度採用dp(dip),设置字体採用sp。

  (应当指出的,在里面的代码,我们写setHeight(…)单位是px)



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117728.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • AutoSize

    AutoSizeLabel1->AutoSize=False;//TrueLabel1->Caption=”Thisstringistoolongtobethecaptionofthislabel”;通过为知笔记发布转载于:https://www.cnblogs.com/xe2011/archive/2012/06/03/5e3ea26bf00c3f837…

    2022年6月6日
    24
  • 字符串转list

    字符串转list用特殊符号分割的字符串如何转为List例如:Stringids=“11,32,33”;1、ids转为List2、ids转为List1、List<String>strList=Arrays.asList(ids.split(“,”));“2、List<Long>mediaIdList=Arrays.stream(ids.split(“,”)).map(v->Long.parseLong(v)).collect(Collectors.toLis

    2022年5月14日
    52
  • 语音信号处理知识点

    语音信号处理知识点语音信号处理过程的总体结构:语音输入–&gt;预处理–&gt;数字化–&gt;特征提取预处理:对信号适当放大和增益控制,并进行反混叠滤波来消除工频信号干扰数字化:进行A/D转换特征提取:用反映语音信号特点的若干参数来代表语言 共振峰:当把声道看成一个发音的腔体的时候,激励的频率达到他的固有频率,则声道会以最大的振幅来振荡,即产生共鸣,这个频率称为共振频率(forman…

    2022年5月26日
    30
  • 数据库设计之学生选课系统数据流图_学生选课管理系统

    数据库设计之学生选课系统数据流图_学生选课管理系统版权声明:对于本博客所有原创文章,允许个人、教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者、出处及本声明。  博客地址:http://blog.csdn.net/shuxiao9058  原始作者:季亚一、概要设计1.1目的和意义  随着无纸化办公的普遍实现,信息的自动处理以及网络式的信息交互方式已经被人们广泛应用

    2022年9月25日
    0
  • leetcode 颜色分类_leetcode难度

    leetcode 颜色分类_leetcode难度给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nums = [2,0,1]输出:[0,1,2]示例 3:输入:nums = [0]输出:[0]示例 4:输入:nums = [1]输出:[1] 提示:n == num

    2022年8月9日
    3
  • 【Java】输入—Scanner用法(全)[通俗易懂]

    【Java】输入—Scanner用法(全)[通俗易懂]Scanner用法目录1、输入整数、字符串数组2、输入二维数组3、输入字符串4、输入字符串分割为数组5、连续输入数字和字符串6、换行输入数字和字符串7、换行输入数字和字符串(需要包含空格)1、输入整数、字符串数组第一行输入n,m第二行输入n个整数第三行输入m个字符串//导入包importjava.util.Scanner;import…

    2022年7月16日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号