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 ...
随机推荐
- Intent对象(组件间的通信原理)
Intent对象是一种可以在运行时动态绑定组件的关键技术,通过使用Intent对象,可以告诉系统你想要实现什么样的操作,也就是Intent对象里面包含的请求内容,请求再由Android操作系统接收到, ...
- shiro自定义异常无法被捕获总是抛出AuthenticationException解决方案
这个问题我也是出的莫名其妙,刚开始好好的,然后配置多realm之后出的. 现在直入主题 在继承了 org.apache.shiro.authc.pam.ModularRealmAuthenticato ...
- ElasticSearch核心概念和文档的CRUD
目录 1. 基本概念 1.1 Node 与 Cluster 1.2 Index 1.3 Document 1.4 Type(将在ES6.0移除) 2. 数据的增删改查 2.1 添加数据 2.2 查询数 ...
- 利用Python模拟GitHub登录
最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析.现在我准备尝试着结合Python来模拟GitHub登录. Fiddler抓包分析 首先,我们想要模拟一 ...
- Visual Studio中Es6的开发环境搭建
1.打开终端,输入初始化代码.输入代码之后会在目录中出现package.json,可以在红色下划线上写上作者名和描述(不写也可以) npm init -y 2.安装Babel转换器 npm in ...
- 接口文档注解:@ApiOperation
@ApiOperation不是spring自带的注解是swagger里的 com.wordnik.swagger.annotations.ApiOperation; @ApiOperation和@Ap ...
- C程序中可怕的野指针
一.疑问点指针是C语言一个很强大的功能,同时也是很容易让人犯错的一个功能,用错了指针,轻者只是报个错,重者可能整个系统都崩溃了.下面是大家在编写C程序时,经常遇到的一种错误的使用方法,也许在你的学习和 ...
- 一个超级简单的Jetty实例
Maven: <!-- https://mvnrepository.com/artifact/org.mortbay.jetty/jetty --> <dependency> ...
- STM32F072从零配置工程-基于HAL库的串口UART中断配置
先上一个采用串口直接传输的Demo: 此处的思路是完全采用HAL库来实现的,核心是运用HAL_UART_Transmit_IT和HAL_UART_Receive_IT两个函数来实现的,可以作为一个De ...
- C#编程之IList、List和ArrayList
额...今天看了半天Ilist<T>和List<T>的区别,然后惊奇的发现使用IList<T>还是List<T>对我的项目来说没有区别... 在C#中 ...