极力推荐文章:欢迎收藏

Android 干货分享

阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

  1. 多语言 String 资源
  2. 多屏幕 Image 资源
  3. 横竖屏 Layout 布局
  4. 不同版本SDK
  5. Array 数组资源
  6. Color 颜色资源
  7. Dimen 尺寸资源
  8. style样式 资源
  9. assert 文件夹下的原始资源
  10. raw 文件夹下的资源
  11. 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 文件夹下的原始资源

此文件夹为原始资源文件夹,文件下的内容不会被编译,此目录同srcres 同级。

获取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 使用详解的更多相关文章

  1. @Required @Autowired @Resource注解详解

    一.@Required注解用于检查特定的属性是否设置 1.RequiredAnnotationBeanPostProcessor 为该注解的处理器,即bean后置处理器,检查所有带有该解的bean属性 ...

  2. Cross-Origin Resource Sharing(CORS)详解,CORS详解,CORS原理分析

    Keywords CORS, 跨域,JS跨域调用,Ajax CORS 跨域,跨域详解,CORS跨域原理 Cross-Origin Resource Sharing详解 Cross-Origin Res ...

  3. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  4. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  5. Xamarin.Android通知详解

    一.发送通知的机制 在日常的app应用中经常需要使用通知,因为服务.广播后台活动如果有事件需要通知用户,则需要通过通知栏显示,而在Xamarin.Android下的通知需要获取Notification ...

  6. Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...

  7. Docker命令详解

    Docker命令详解   最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...

  8. linux查看端口及端口详解

    今天现场查看了TCP端口的占用情况,如下图   红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说E ...

  9. Tomcat使用详解

    Tomcat简介 官网:http://tomcat.apache.org/ Tomcat GitHub 地址:https://github.com/apache/tomcat Tomcat是Apach ...

随机推荐

  1. Burp Suite 基础知识(一)

    前言 大家好,我是小白,下面开始我的表演,以下内容如有雷同纯属巧合,靴靴.  (鞠躬 学到什么就写什么,可能有点乱哈. Burp Suite 是一款用于攻击 web 应用程序的集成平台,包含了许多工具 ...

  2. HDU 3416:Marriage Match IV(最短路+最大流)

    http://acm.hdu.edu.cn/showproblem.php?pid=3416 题意:给出n个点m条边,边信息分别是两个端点和一个费用,再给出一个起点和一个终点,问从起点到终点的完全不相 ...

  3. 工具资源系列之给 windows 虚拟机装个 mac

    众说周知,Mac 很好但也很贵,对一般大众而言,漂亮简洁高颜值,对软件开发者而言,方便省心有点贵. 好到什么程度? 内置大量常用的开发工具,省去了初学者安装配置环境的麻烦,版本控制工具 svn 默认已 ...

  4. Java集合对象比对

    1. 场景描述 通过java代码从外围接口中获取数据并落地,已经存在的不落地,不存在的落地,因有部分字段变化是正常的,只需比对3个字段相同即为相同. 2. 解决方案 设置定时任务(三个标签完成spri ...

  5. 聊聊C语言的预编译指令include

    "include"相信大家不会陌生,在我们写代码时,开头总会来一句"include XXX".include是干嘛用的,很多教材都提到了,因此这里不会再详细解释 ...

  6. springboot项目问题记录one

    上面三个方法描述如下: 首先有个业务,我是需要调取第三方一个sdk,然后sdk里面封装的kafka,也就是说,需要用sdk内置的连接kafka去消费消息,然后又有一个类需要实现Message,此Mes ...

  7. [USACO09FEB]股票市场Stock Market

    题意简述: 给定⼀个DDD天的SSS只股票价格矩阵,以及初始资⾦ MMM:每次买股票只能买某个股票价格的整数倍,可以不花钱,约定获利不超过500000500000500000.最⼤化你的 总获利. 题 ...

  8. RecyclerView下拉加载集合越界问题

    问题描述 在做毕业设计app中遇到这样一个问题,使用RecyclerView进行下拉加载数据的时候,比如我每次让它加载5条数据,当服务器端数据总数刚好是5的倍数的时候,不会出现下拉加载数据集合越界的问 ...

  9. [PTA] L3-015 球队“食物链”

    原题链接 思路: 如果有环,则起点一定为"1".如果没有可以胜过"1"的,则无环. 根据W,L来建立图,用dfs从1节点遍历+回溯. 剪枝:dfs到某个子序列时 ...

  10. [leetcode]375 Guess Number Higher or Lower II (Medium)

    原题 思路: miniMax+DP dp[i][j]保存在i到j范围内,猜中这个数字需要花费的最少 money. "至少需要的花费",就要我们 "做最坏的打算,尽最大的努 ...