【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片(三)

简介: 【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片(三)



四. string.xml占位符




开发中经常遇到这样的情况 , 在string.xml中用到以下占位符

<string name="delete_success">删除<xliff:g id="name">%1$s</xliff:g>成功</string> 
<string name="upload_success">%1$s上传到%2$s成功</string>

1.xliff:g标签

http://blog.csdn.net/hustpzb/article/details/6870817


http://blog.csdn.net/ganggang1st/article/details/6804086



五. 动态引用图片



在资源文件中存放有 image_1.png, image_2.png, image_3.png 三张图片 ,  根据传入参数动态引用对应的图片 , 有三个解决方法


根据R.drawable.xx动态引用是错误的 , 因为每个这种id都对应着R文件中的一个id,如果没有相对应的id , 编译不会通过;


建立一个工程,包名为com.yun.demo


方案一 : 图片放在drawable目录下的情况

Resources resources = this.getResources();
int imageIndentify = resources.getIdentifier(imageName, "drawable","chao.yun.demo");

使用上面的代码可以通过字符串拼接图片名称 , 根据传入的参数 , 拼接imageName字符串 , 从而动态的获取图片对应的id;

resources.getIdentifier(imageName, "drawable","chao.yun.demo");

这个方法返回的是图片对应的id ;

第一个参数是图片的名称 , 如果没有找到 , 返回0 ;

第二个参数是默认的资源类型 , 如果找的是图片 , 就是 "drawable" , 这个不是具体的目录 , 因此不用注明"drawable-hdpi"

第三个参数是包名 , 这个包名是创建工程时候的包名 , 是总的包名 , 与manifest配置文件中的包名相同;

详细代码 :

layout中的代码 :


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <LinearLayout 
        android:id="@+id/ll_1"
        android:layout_width="fill_parent"
        android:layout_height="0px"
        android:layout_weight="1"></LinearLayout>
    <LinearLayout 
        android:id="@+id/ll_2"
        android:layout_width="fill_parent"
        android:layout_height="0px"
        android:layout_weight="1"></LinearLayout>
    <LinearLayout 
        android:id="@+id/ll_3"
        android:layout_width="fill_parent"
        android:layout_height="0px"
        android:layout_weight="1"></LinearLayout>
</LinearLayout>
activity代码 :
public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        LinearLayout ll_1 = (LinearLayout) findViewById(R.id.ll_1);
        LinearLayout ll_2 = (LinearLayout) findViewById(R.id.ll_2);
        LinearLayout ll_3 = (LinearLayout) findViewById(R.id.ll_3);
        Resources resources = this.getResources();
  String imageName = "image_" + 1;
  int imageIndentify = resources.getIdentifier(imageName, "drawable","chao.yun.demo");
  ll_1.setBackgroundResource(imageIndentify);
  imageName = "image_" + 2;
  imageIndentify = resources.getIdentifier(imageName, "drawable","chao.yun.demo");
  ll_2.setBackgroundResource(imageIndentify);
  imageName = "image_" + 3;
  imageIndentify = resources.getIdentifier(imageName, "drawable","chao.yun.demo");
  ll_3.setBackgroundResource(imageIndentify);
    }
}

效果图 :image.png


目录
相关文章
|
7月前
|
数据库 Android开发
Android Studio开发之应用组件Application的讲解及实战(附源码,通过图书管理信息系统实战)
Android Studio开发之应用组件Application的讲解及实战(附源码,通过图书管理信息系统实战)
426 0
|
4月前
|
Java Android开发
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
518 1
|
7月前
|
XML 数据格式 Python
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
|
7月前
|
Android开发
android string.xml文件中的整型和string型代替
android string.xml文件中的整型和string型代替
49 0
|
7月前
|
缓存 Android开发
Android——application全局类的使用
Android——application全局类的使用
|
7月前
|
XML 数据采集 存储
挖掘网络宝藏:R和XML库助你轻松抓取 www.sohu.com 图片
网络上有无数的图片资源,但是如何从特定的网站中快速地抓取图片呢?本文将介绍一种使用 R 语言和 XML 库的简单方法,让你可以轻松地从 www.sohu.com 网站上下载你感兴趣的图片。本文将涉及以下几个方面: ● 为什么选择 R 语言和 XML 库作为图片爬虫的工具? ● 如何使用 R 语言和 XML 库来访问、解析和提取网页上的图片链接? ● 如何使用代理 IP 技术,参考亿牛云爬虫代理的设置,避免被网站屏蔽或限制? ● 如何实现多线程技术,提高图片爬取的效率和速度? ● 如何将爬取到的图片保存到本地或云端,进行数据分析和可视化?
109 0
|
7月前
|
缓存 Java 数据库
Android 性能优化: 请解释ANR(Application Not Responding)是什么,如何避免它?
Android 性能优化: 请解释ANR(Application Not Responding)是什么,如何避免它?
111 0
|
Android开发
Android 开发引用 okio 依赖之后无法运行main方法的坑
Android 开发引用 okio 依赖之后无法运行main方法的坑
106 1
|
Android开发
Android 中String.format()的用法
Android 中String.format()的用法
99 0
|
数据安全/隐私保护 Android开发
uniapp vue3版本 Android 引用 jsencrypt加密库 报错问题 “default“ is not exported by,解决方法
uniapp vue3版本 Android 引用 jsencrypt加密库 报错问题 “default“ is not exported by,解决方法
1213 0