Resource 使用详解
极力推荐文章:欢迎收藏
Android 干货分享
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android
本篇文章主要介绍 Android
开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:
- 多语言 String 资源
- 多屏幕 Image 资源
- 横竖屏 Layout 布局
- 不同版本SDK
- Array 数组资源
- Color 颜色资源
- Dimen 尺寸资源
- style样式 资源
- assert 文件夹下的原始资源
- raw 文件夹下的资源
- anim 文件夹下的资源
Android
中经常会使用资源文件来填充View
或者 实现app
相关的功能,本篇文章总结了Android
中常见的一些资源的使用方法。
1. 多语言 String 资源
String
主要用于存放系统字符串资源,字符串资源跟其他资源类似,也是在values
文件夹下。
Android
字符串资源支持多语言,使用方法如下:
命名规则
valuess-(ISO语言代码)
使用语法
1. 字符串资源Java类使用方法
Java使用方法如下:
R.string.<string_name>
引用字符串资源
Java中 字符串资源获取方法:
tv_res = (TextView) findViewById(R.id.tv_res);
String mString=getResources().getString(R.string.hello_world);
tv_res.setText(mString);
2. 字符串资源XML中使用方法
使用方法如下:
@string/<string_name>
引用字符串资源
XML
中 字符串资源获取方法:
<TextView
android:id="@+id/tv_res"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="测试 res 资源文件使用方法" />
3. 存储多语言翻译字符串
存放路径如下:
valuess-(ISO语言代码)/strings.xml
存储多语言字符串资源文件:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
... ...
<string name="hello_world">Hello world!</string>
... ...
</resources>
2. 多屏幕 Image 资源
Image
主要用于存放系统图片资源,图片资源跟其他资源类似,也是在res
文件夹下。
常用存放图片资源的文件夹如下:
1. 在XML 中使用图片资源
xml
中使用图片资源:
<ImageView
android:id="@+id/img_res_usb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
2. 在Java类中 使用图片资源
Java中使用图片资源 :
ImageView mImageView=(ImageView) findViewById(R.id.img_res_usb);
mImageView.setImageResource(R.drawable.ic_launcher);
3. 多屏幕 Layout 布局
由Array
主要用于存放系统布局资源,布局资源跟其他资源类似,也是在res
文件夹下。
于Andoid
设备屏幕大小不统一,因此Android
为适配多屏幕实现多布局。
固定Activity的显示方向:
<!-- 竖屏 portrait -->
<activity
android:name=".Activity.ActivityMethods"
android:screenOrientation="portrait" />
<!-- 横屏 landscape -->
<activity
android:name="com.programandroid.TextView.TextViewMethod"
android:screenOrientation="landscape" />
4. 不同版本SDK支持
在AndroidManfest.xml中声明
android SDK版本支持:
<uses-sdk
android:minSdkVersion="24"
android:targetSdkVersion="27" />
Java 代码中SDK版本判断
SDK 版本判断:
//判断当前手机设备SDK 版本是否是在Android M 6.0 之上
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
}else {
}
5. Array 数组资源
Array
主要用于存放系统数组资源,数组资源跟其他资源类似,也是在values
文件夹下。
xml 中声明数组资源如下:
<string-array name="fav_phone">
<item>Iphone</item>
<item>华为</item>
<item>小米</item>
<item>oppo</item>
<item>vivo</item>
<item>锤子</item>
</string-array>
1. xml 中使用方法如下:
在XML 中直接使用数组资源:
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/fav_phone" />
2. Java 中使用方法如下
Java 中使用字符串资源:
String[] mArray=getResources().getStringArray(R.array.fav_phone);
6. Color 颜色资源
Color
主要用于存放系统颜色资源,颜色资源跟其他资源类似,也是在values
文件夹下。
Colors.xml 中的颜色值
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="grey">#A9A9A9</color>
<color name="black">#000000</color>
<color name="white_line">#d8d8d8</color>
</resources>
1. xml中使用资源文件的方法
xml 中使用Color 资源方法:
<Button
android:id="@+id/btn_res_color"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="ResColorMethod"
android:text="颜色资源设置"
android:textColor="@color/black" />
2. Java 中使用颜色资源的方法
- 使用自定义Color 资源
Java中颜色资源使用方法:
Button mButton=(Button) findViewById(R.id.btn_res_color);
mButton.setTextColor(getResources().getColor(R.color.black));
- 使用 系统Color 类中的原始资源
使用系统Color 类中的资源:
Button mButton=(Button) findViewById(R.id.btn_res_color);
// mButton.setTextColor(getResources().getColor(R.color.black));
mButton.setTextColor(Color.RED);
7. Dimen 尺寸资源
Dimen
主要用于规范化Android
尺寸,边距等资源。尺寸资源跟其他资源类似,也是在values
文件夹下。
1. xml中使用Dimen 资源文件的方法
xml 中使用Dimen 资源:
<Button
android:id="@+id/btn_res_dimen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="ResDimenMethod"
android:textSize="@dimen/abc_action_bar_default_height"
android:paddingLeft="@dimen/abc_action_bar_default_height"
android:text="尺寸资源设置" />
2. Java 中使用Dimen资源的方法
Java代码中使用Dimen资源:
Button mButton=(Button) findViewById(R.id.btn_res_color);
// mButton.setTextColor(getResources().getColor(R.color.black));
mButton.setTextColor(Color.RED);
mButton.setTextSize(getResources().getDimension(R.dimen.activity_horizontal_margin));
8. style样式 资源
style
主要是统一规范app
系统主题样式等资源。
style样式资源控制举例:
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme"></style>
<!-- 自定义loading dialog样式 -->
<style name="loading_dialog" parent="android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/loading_bg</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
1.xml 下使用方法
2. Java 代码中使用方法
9. assert 文件夹下的原始资源
此文件夹为原始资源文件夹,文件下的内容不会被编译,此目录同src
及res
同级。
获取asset下文件字符串、位图:
public void ResAssetMethod(View view) {
String fileString = ReadStrFromFile("test.txt");
Toast.makeText(getApplicationContext(), "文件内容" + fileString,
Toast.LENGTH_LONG).show();
Bitmap btnBitmap = ReadImageFromAssetFile("img/ic_launcher.png");
ImageView img = (ImageView) findViewById(R.id.img_res_assert);
img.setImageBitmap(btnBitmap);
}
1. 获取asset下文件字符串
获取asset下文件字符串 方法:
/**
* @param string
*/
private String ReadStrFromFile(String filename) {
if (TextUtils.isEmpty(filename)) {
Toast.makeText(getApplicationContext(), "文件不能为空",
Toast.LENGTH_SHORT).show();
return null;
}
String assetString = null;
try {
InputStream inputStream = getAssets().open(filename);
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
assetString = new String(bytes, "utf-8");
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
return assetString;
}
2. 获取asset下 图片
获取asset下 图片方法:
/**
* @param string
*/
private Bitmap ReadImageFromAssetFile(String filename) {
if (filename == null) {
return null;
}
Bitmap bitmap = null;
try {
InputStream inputStream = getAssets().open(filename);
bitmap = BitmapFactory.decodeStream(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
10. raw 文件夹下的资源
raw
主要用于存放Android
资源。
播放Raw 文件夹下Music
raw 资源文件夹引用方法:
private MediaPlayer mMediaPlayer;
private boolean isplaying = false;
public void ResRAWMethod(View view) {
mMediaPlayer = MediaPlayer.create(ResourceActivity.this,
R.raw.bootaudio);
if (!isplaying) {
mMediaPlayer.start();// 开始播放
isplaying = true;
Toast.makeText(getApplicationContext(), "正在播放中", Toast.LENGTH_LONG)
.show();
}
mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
if (mMediaPlayer != null) {
try {
isplaying = false;
mMediaPlayer.stop();
mMediaPlayer.reset();
mMediaPlayer.release();
mMediaPlayer = null;
} catch (Exception e) {
}
}
}
});
}
11. anim 文件夹下的资源
Anim
主要用于存放Android
动画资源。
配置帧动画
anim 配置:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/bird0001_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0002_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0003_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0004_risk"
android:duration="80"/>
使用动画资源
anim 的使用:
<ImageView
android:id="@+id/img"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center_horizontal"
android:background="@anim/frame_animation" />
至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
Resource 使用详解的更多相关文章
- @Required @Autowired @Resource注解详解
一.@Required注解用于检查特定的属性是否设置 1.RequiredAnnotationBeanPostProcessor 为该注解的处理器,即bean后置处理器,检查所有带有该解的bean属性 ...
- Cross-Origin Resource Sharing(CORS)详解,CORS详解,CORS原理分析
Keywords CORS, 跨域,JS跨域调用,Ajax CORS 跨域,跨域详解,CORS跨域原理 Cross-Origin Resource Sharing详解 Cross-Origin Res ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
- Android Notification 详解——基本操作
Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...
- Xamarin.Android通知详解
一.发送通知的机制 在日常的app应用中经常需要使用通知,因为服务.广播后台活动如果有事件需要通知用户,则需要通过通知栏显示,而在Xamarin.Android下的通知需要获取Notification ...
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...
- Docker命令详解
Docker命令详解 最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...
- linux查看端口及端口详解
今天现场查看了TCP端口的占用情况,如下图 红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说E ...
- Tomcat使用详解
Tomcat简介 官网:http://tomcat.apache.org/ Tomcat GitHub 地址:https://github.com/apache/tomcat Tomcat是Apach ...
随机推荐
- tensorflow 离线使用 fashion_mnist 数据集
在tensflow中加载 fashion_mnist 数据集时,由于网络原因.可能会长时间加载不到或报错 此时我们可以通过离线的方式加载 1.首先下载数据集:fashion_mnist (下载后解压) ...
- vux loadmore + axios 实现点击加载更多
在微信项目中有应用过几个上拉加载更多的组件,但总会出现一些兼容性方面的bug,需要各种补漏(注:组件都是基于iscroll实现的, iscroll原本就有些坑).Vux也有提供Scroller组件实现 ...
- C++学习书籍推荐《Exceptional C++》下载
百度云及其他网盘下载地址:点我 编辑推荐 <Exceptional C++:47个C++工程难题.编程问题和解决方案(中文版)>中的每个问题都给出了难度系数,在这些问题中阐释一些微妙的编程 ...
- 18.linux基础优化
1.linux系统的基础优化 (1)关闭selinux sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config 临时关闭 ...
- Java SpringBoot 如何使用 IdentityServer4 作为验证学习笔记
这边记录下如何使用IdentityServer4 作为 Java SpringBoot 的 认证服务器和令牌颁发服务器.本人也是新手,所以理解不足的地方请多多指教.另外由于真的很久没有写中文了,用词不 ...
- Docker学习第一天
1.Docker包含三个基本概念 镜像(Image) 容器(Container) 仓库(Repository) Docker镜像就是一个只读的模板,镜像可以用来创建Docker容器.Docker提供了 ...
- WinForm控件之【LinkLabel】
基本介绍 超链接标签控件,随处可见应用极为广泛,一般用作触发指定链接跳转指定页面等操作. 常设置属性.事件 ActiveLinkColor:用户单击超链接时超链接显示的颜色: LinkColor:超链 ...
- TF项目实战(基于SSD目标检测)——人脸检测1
SSD实战——人脸检测 Tensorflow 一 .人脸检测的困难: 1. 姿态问题 2.不同种族人, 3.光照 遮挡 带眼睛 4.视角不同 5. 不同尺度 二. 数据集介绍以及转化VOC: 1. F ...
- nuxt项目打包上线,以及nuxt项目基础代码分享
nuxt的项目部署到线上环境,有多种方法,这里分享我使用的方法,一步步照着配置,就可以配置成功~ (1)项目先执行npm run build 打包好 (2)服务器安装node 和pm2依赖 服务器 ...
- Excel催化剂开源第37波-音视频文件元数据提取(分辨率,时长,采样率等)
上一篇提到图片元信息Exif的提取,当然还有一类音视频文件,也同样存储着许多宝贵的元数据,那就开源到底呗,虽然自己找寻过程也是蛮艰辛坎坷的,大家看后有收获,只求多多传播下,让前人的工作可以更有价值. ...