android 资源文件的使用说明,2024年最新【面试必会

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注Android)
img

正文

  1. // Set the text on a TextView object.

  2. TextView msgTextView = (TextView)findViewByID(R.id.msg);

  3. msgTextView.setText(R.string.hello_message);

查了SDK Doc,才明白为什么window.setTitle要先Resources.getText,原来setTitle的参数是 CharSequence,Resources.getText(int)返回的是CharSequence;而其他setText的参数有的是 CharSequence,有的是int(这就是Resources变量值)。

同时官方还给了两个使用系统资源的例子:

  1. //在屏幕上显示标准应用程序的图标

  2. public class MyActivity extends Activity {

  3. public void onStart() {

  4. requestScreenFeatures(FEATURE_BADGE_IMAGE);

  5. super.onStart();

  6. setBadgeResource(android.R.drawable.sym_def_app_icon);

  7. }

  8. }

  9. //应用系统定义的标准"绿色背景"视觉处理

  10. public class MyActivity extends Activity

  11. public void onStart() {

  12. super.onStart();

  13. setTheme(android.R.style.Theme_Black);

  14. }

  15. }

4. xml文件内引用资源

1) 引用自定义的资源

android:text=“@string/hello”

这里使用"@"前缀引入对一个资源的引用–在@[package:]type/name形式中后面的文本是资源的名称。在这种情况下,我们不需要指定包名,因为我们引用的是我们自己包中的资源。type是xml子节点名,name是xml属性名:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. Hello World, HelloDemo!

  4.  

2) 引用系统资源

android:textColor=“@android:color/opaque_red”   指定package: android

3) 引用主题属性

另外一种资源值允许你引用当前主题中的属性的值。这个属性值只能在样式资源和XML属性中使用;它允许你通过将它们改变为当前主题提供的标准变化来改变UI元素的外观,而不是提供具体的值。

android:textColor=“?android:textDisabledColor”

注意,这和资源引用非常类似,除了我们使用一个"?“前缀代替了”@“。当你使用这个标记时,你就提供了属性资源的名称,它将会在主题中被查找–因为资源工具知道需要的属性资源,所以你不需要显示声明这个类型(如果声明,其形式就是?android:attr/android:textDisabledColor)。除了使用这个资源的标识符来查询主题中的值代替原始的资源,其命名语法和”@"形式一致:?[namespace:]type/name,这里类型可选。

5. 替换资源(为了可替换的资源和配置)

个人理解这个替换资源主要用于适应多种规格的屏幕,以及国际化。对于这部分的内容,请参考 http://androidappdocs.appspot.com/guide/topics/resources/resources-i18n.html,以后再研究!

6. Color Value

语法:

  1. #color_value

可以保存在res/values/colors.xml (文件名可以任意)。

xml引用:android:textColor=“@color/color_name”

Java引用:  int color = Resources.getColor(R.color.color_name)

其中#color_value有以下格式(A代表Alpha通道):

#RGB

#ARGB

#RRGGBB

#AARRGGBB

xml示例(声明两个颜色,第一个不透明,第二个透明色):

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. #f00

  4. #80ff0000

  5.  

7.Color Drawables

语法:

  1. color_value

可以保存在res/values/colors.xml。

xml引用:android:background=“@drawable/color_name”

java引用:Drawable redDrawable = Resources.getDrawable(R.drawable.color_name)

color_name和上面的一样。个人认为,一般情况下使用color属性,当需要用到paintDrawable时才使用drawable属性。

xml示例:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. #f00

  4. #80ff0000

  5.  

8. 图片

一般放在res/drawable/里面。官方提示png (preferred), jpg (acceptable), gif (discouraged),看来一般使用png格式比较好!

xml引用   @[package:]drawable/some_file

java引用 R.drawable.some_file      引用是不带扩展名

9. dimension

语法:

  1. dimen_value单位

一般保存为res/values/dimen.xml。

度量单位:

px(象素): 屏幕实际的象素,常说的分辨率1024*768pixels,就是横向1024px, 纵向768px,不同设备显示效果相同。

in(英寸): 屏幕的物理尺寸, 每英寸等于2.54厘米。

mm(毫米): 屏幕的物理尺寸。

pt(点)  : 屏幕的物理尺寸。1/72英寸。

dp/dip  : 与密度无关的象素,一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。但dp和px的比例会随着屏幕密度的变化而改变,不同设备有不同的显示效果。

sp          : 与刻度无关的象素,主要用于字体显示best for textsize,作为和文字相关大小单位。

XML: android:textSize=“@dimen/some_name”

Java: float dimen = Resources.getDimen(R.dimen.some_name)

xml示例:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. 1px

  4. 2dp

  5. 16sp

  6.  

10. string

下面是官方给出的正确/错误的例子:

  1. //不使用转义符则需要用双引号包住整个string

  2. “This’ll work”

  3. //使用转义符

  4. This\'ll also work

  5. //错误

  6. This won’t work!

  7. //错误 不可使用html转义字符

  8. XML encodings won’t work either!

对于带格式的string,例如在字符串中某些文字设置颜色,可以使用html标签。对于这类型的string,需要进行某些处理,在xml里面不可以被其他资源引用。官方给了一个例子来对比普通string和带格式string的使用:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. Welcome!

  4. We are so glad to see you.

学习福利

【Android 详细知识点思维脑图(技能树)】

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。

这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。

[外链图片转存中…(img-8v15dPI9-1713688467952)]

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
[外链图片转存中…(img-9Clhrjrr-1713688467953)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 26
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值