为什么我要在Android中将图像作为整数数组?

时间:2016-08-21 02:55:09

标签: java android android-drawable

我正在iOS和Android之间进行转换,所以这可能是一个非常业余的问题。但是通过在线示例,我看到一组图像实际上是一个整数数组:

sleep(2)

有人可以解释为什么我把它们放在// references to our images private Integer[] mThumbIds = { R.drawable.sample_7, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6 };

5 个答案:

答案 0 :(得分:2)

这是drawables(图像)的资源ID。

像这样使用:

ImageView image = findViewById(R.id.test_image);
image.setImageResource(mThumbIds[0]);

这是一个很好的教程和文档。

https://github.com/codepath/android_guides/wiki/Working-with-the-ImageView

https://developer.android.com/guide/topics/resources/accessing-resources.html

答案 1 :(得分:1)

Android有一个名为Resources的系统。这些是内置于apk中的数据片段(通常是整数,字符串,颜色值或绘图(图像),但有时会像数组甚至文件一样)。它们实际上内置于应用程序中以提高速度。这些数据被赋予整数id值,并且基本上通过id在巨型hashmap中查找。对于drawable,res / drawable目录中的任何内容都以这种方式处理,并给出了id R.drawable.filename。

因此,图像使用int数组,因为它是这些id值的数组。基本上是一组哈希键,用于在运行时查找它们。 (实际的实现并不是一个hashmap,但它足够接近你可以这么想)。

答案 2 :(得分:0)

如本节所述:

// references to our images  
private Integer[] mThumbIds

它实际上只是一组参考ID。这些引用稍后用于告诉API要加载什么。

答案 3 :(得分:0)

如果我们在drawable文件夹中保留任何资源,则android sdk会自动为该资源生成唯一的整数值(图像,xml文件等)。

当我们拨打R.drawable.resource_name R.drawable.sample_7时,会返回Integer个ID。

这就是为什么在你的代码中你需要放入Integer Array

注意:

不仅适用于资源(图像,xml等)文件,还适用于R.javagen文件夹下R.id.ui_component_name类中生成的所有UI组件(Layout,Button,TextView,EditText等)唯一ID。

我们使用

Button, EditText, TextView, Spinner for(R.layout_layout_name etc),
Relative Layout,线性布局等R.drawable.resource_nameImage for {re.findall(r'"([^\\]+)\\"', s) ,custom_views xml etc)

答案 4 :(得分:0)

Drawable上放置的所有图像都将由整数id引用。 您可以在R.java文件中看到所有字符串,颜色,布局和图像都在那里。

因此,当您想要使用时,您只需要使用R文件中的id https://developer.android.com/guide/topics/resources/accessing-resources.html