2-VIV-Android控件之res资源加载

简介: 零、前言[1].本想在控件使用中穿插讲一下资源在加载,但感觉知识点挺多还是单开一篇专门讲一下吧。[2].values/string.xml的使用[3].

零、前言

[1].本想在控件使用中穿插讲一下资源在加载,但感觉知识点挺多还是单开一篇专门讲一下吧。
[2].values/string.xml的使用
[3].values/dimens.xml的使用
[4].values/colors.xml的使用
[5].values/styles.xml的使用
[6].选择器selector的使用
[7].anim里xml动画加载


一、values/string.xml的使用

1.单字符串
<string name="title">张风捷特烈</string>
//使用单字符串
setTitle(getResources().getString(R.string.title));
//xml里
android:text="@string/title"
定义string.png
2.字符串数组
<string-array name="coder">
    <item>Java</item>
    <item>Python</item>
    <item>JavaScript</item>
    <item>C++</item>
    <item>C</item>
</string-array>
//获取字符数组
String[] coders = getResources().getStringArray(R.array.coder);
for (int i = 0; i < coders.length; i++) {
    mIdTvCoder.append(coders[i]+"\n");
}
加载数组.png

二、values/dimens.xml的使用

<dimen name="sp_18">18sp</dimen>
//xml
android:textSize="@dimen/sp_18"
//获取尺寸==已转换为px
float dimension = getResources().getDimensionPixelOffset(R.dimen.sp_18);
mIdTvCoder.setTextSize(TypedValue.COMPLEX_UNIT_PX,dimension);

三、values/styles.xml的使用

用来抽取一些常用样式

<style name="SmallBlueTextView">
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:textSize">@dimen/sp_12</item>
    <item name="android:textColor">@dimen/sp_12</item>
</style>

使用

    <TextView
        android:id="@+id/id_tv_coder"
        style="@style/SmallBlueTextView"/>

四、values/colors.xml的使用

<color name="gray">#eeeeee</color>
//获取颜色
int color = getResources().getColor(R.color.gray);
mIdTvCoder.setBackgroundColor(color);
//xml里
android:background="@color/gray"

颜色.png

五、选择器selector的使用

1.drawable文件夹下的selector:drawable/sel_db_gary_white.xml

颜色部分都可以改成相应的图片资源,这里就不赘述了

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--按压为灰色-->
    <item android:drawable="@color/gray" android:state_pressed="true"/>
    <!--不可用状态为红色-->
    <item android:drawable="@color/red" android:state_enabled="false"/>
    <!--默认白色-->
    <item android:drawable="@color/white"/>
</selector>

当做一个drawable使用

 android:background="@drawable/sel_db_gary_white"

常见属性

  1、android:drawable 可绘制对象资源。
  2、android:state_pressed 按下
  3、android:state_checked 选中
   4、android:state_checkable 可选中
  5、android:state_selected 方向键浏览列表
  6、android:state_enabled 可用
    7、android:state_focused 获取焦点
  8、android:state_activated 激活
  9、android:state_hovered 光标悬停
  10、android:state_window_focused 窗口有焦点
2.color文件夹下的selector:color/sel_col_gary_white.xml

注意小坑,只能给文字用,背景一用就崩了!!!
在res文件夹下新建color文件夹

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#A6A6A6" android:state_enabled="false"/>
    <item android:color="#A6D3CF" android:state_pressed="true"/>
    <item android:color="@color/blue"/>
</selector>

xml中当作颜色使用

android:textColor="@color/sel_col_gary_white"

代码中使用

//获取选择器
ColorStateList selColor = getResources().getColorStateList(R.color.sel_col_gary_white);
mIdTvCoder.setTextColor(selColor);

六、anim里xml动画加载

定义

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <rotate
        android:duration="2000"
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatMode="reverse"
        android:toDegrees="360"
    />
</set>

使用

Animation rotate = AnimationUtils.loadAnimation(this, R.anim.anim_rotate);
mIdTvCoder.setAnimation(rotate);
mIdTvCoder.startAnimation(rotate);

后记、

1.声明:

[1]本文由张风捷特烈原创,转载请注明
[2]欢迎广大编程爱好者共同交流
[3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正
[4]你的喜欢与支持将是我最大的动力

2.连接传送门:

更多安卓技术欢迎访问:安卓技术栈
我的github地址:欢迎star
简书首发,腾讯云+社区同步更新
张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com

3.联系我

QQ:1981462002
邮箱:1981462002@qq.com
微信:zdl1994328

4.欢迎关注我的微信公众号,最新精彩文章,及时送达:
公众号.jpg
相关文章
|
21天前
|
存储 消息中间件 人工智能
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
56 3
|
5月前
|
XML 搜索推荐 Android开发
Android改变进度条控件progressbar的样式(根据源码修改)
本文介绍了如何基于Android源码自定义ProgressBar样式。首先分析了系统源码中ProgressBar样式的定义,发现其依赖一张旋转图片实现动画效果。接着分两步指导开发者实现自定义:1) 模仿源码创建一个旋转动画XML文件(放置在drawable文件夹),修改图片为自定义样式;2) 在UI控件中通过`indeterminateDrawable`属性应用该动画。最终实现简单且个性化的ProgressBar效果,附带效果图展示。
281 2
|
5月前
|
Android开发
Android控件样式的抽取(小提及快捷方式)
在Android开发中,若多个控件样式重复,可抽取公共部分以简化代码。例如对EditText提取样式,通过编辑`styles.xml`实现复用。为提高效率,Android Studio提供自动提取Style功能:右键点击控件样式选项,选择“Style...”,勾选需要提取的属性后确认,即可快速生成样式代码,显著提升开发便利性。
146 2
|
Java Android开发
Android面试题经典之Glide取消加载以及线程池优化
Glide通过生命周期管理在`onStop`时暂停请求,`onDestroy`时取消请求,减少资源浪费。在`EngineJob`和`DecodeJob`中使用`cancel`方法标记任务并中断数据获取。当网络请求被取消时,`HttpUrlFetcher`的`cancel`方法设置标志,之后的数据获取会返回`null`,中断加载流程。Glide还使用定制的线程池,如AnimationExecutor、diskCacheExecutor、sourceExecutor和newUnlimitedSourceExecutor,其中某些禁止网络访问,并根据CPU核心数动态调整线程数。
347 2
|
12月前
|
Android开发 UED
Android 中加载 Gif 动画
【10月更文挑战第20天】加载 Gif 动画是 Android 开发中的一项重要技能。通过使用第三方库或自定义实现,可以方便地在应用中展示生动的 Gif 动画。在实际应用中,需要根据具体情况进行合理选择和优化,以确保用户体验和性能的平衡。可以通过不断的实践和探索,进一步掌握在 Android 中加载 Gif 动画的技巧和方法,为开发高质量的 Android 应用提供支持。
|
XML 编解码 Android开发
安卓开发中的自定义视图控件
【9月更文挑战第14天】在安卓开发中,自定义视图控件是一种高级技巧,它可以让开发者根据项目需求创建出独特的用户界面元素。本文将通过一个简单示例,引导你了解如何在安卓项目中实现自定义视图控件,包括创建自定义控件类、处理绘制逻辑以及响应用户交互。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和技巧。
156 3
|
12月前
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
109 0
|
前端开发 Android开发 开发者
安卓开发中的自定义视图:构建你的第一个控件
【8月更文挑战第26天】在安卓开发的浩瀚海洋中,自定义视图是一块充满魔力的乐土。它不仅是开发者展示创造力的舞台,更是实现独特用户体验的关键。本文将带你步入自定义视图的世界,从基础概念到实战应用,一步步教你如何打造自己的第一个控件。无论你是初学者还是有经验的开发者,这篇文章都将为你的开发之旅增添新的风景。
|
存储 缓存 Java
Android项目架构设计问题之优化业务接口数据的加载效率如何解决
Android项目架构设计问题之优化业务接口数据的加载效率如何解决
127 0
|
Java Android开发 Kotlin
Android项目架构设计问题之要在Glide库中加载网络图片到ImageView如何解决
Android项目架构设计问题之要在Glide库中加载网络图片到ImageView如何解决
135 0

热门文章

最新文章