我正在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
};
?
答案 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.java
类gen
文件夹下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_name
)
Image
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