扩展HelloGallery教程。单击图像并将图像传递到另一个活动/页面

时间:2010-10-12 13:45:02

标签: android

我是Android(和Java)的新手,最初是一名C#开发人员......我正在努力学习这些概念和术语。 我已经完成了几乎所有的教程,并决定开始我的第一个测试应用程序。

我的应用程序的第一部分将涉及使用库窗口小部件(基于hello gallery tutorial)来显示大量图像。 (这些图像最终将来自手机摄像头,但我稍后会越过那座桥!) 我的图片目前存储在我项目的drawable文件夹中。

作为第一步,我想让用户点击一个图像,它会全屏弹出,这样我才知道如何引用它,但我很挣扎。我希望用户点击图像,然后会打开一个窗口/活动(?),询问他们是否有一些文字。然后,这将以sqllite的形式存储在图像中。

到目前为止,我有两个班级: Class1& OpenImage。 Class1 one包含类似于HelloGallery教程的ImageAdapter类。我在“getView”中添加了一个onclick监听器,如下所示:

public View getView(final int position, View convertView, ViewGroup parent) {
        ImageView i = new ImageView(mContext);

        i.setImageResource(mImageIds[position]);
        i.setLayoutParams(new Gallery.LayoutParams(150, 100));
        i.setScaleType(ImageView.ScaleType.FIT_XY);
        i.setBackgroundResource(mGalleryItemBackground);

        i.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {                    
                    Intent i = new Intent(Class1.this, OpenImage.class);
                    startActivity(i);
                    finish();                    
            }
          });     

        return i;
    }

我正在努力的部分是打开我的OpenImage并让它显示图像。

首先,我不确定我需要传递什么以及如何操作,然后我如何在OpenImage页面/活动中获取它。

我甚至不确定我正在尝试做什么的术语,所以我也发现很难研究。我打开全屏图像时是否打开了新活动?或者它应该是某种弹出窗口?

这似乎是最简单的事情,但我陷入了第一道障碍。 有人可以给我一些指导吗?

谢谢Bex

1 个答案:

答案 0 :(得分:3)

你差不多完成了。只需将图像的ID传递给intent:

                Intent i = new Intent(Class1.this, OpenImage.class);
                i.putExtra("the_image_id", mImageIds[position]);
                startActivity(i);
                finish();

然后,在OpenImage课程中,您获得了ID并将其设置为全屏ImageView

public void onCreate(Bundle b){
    super.onCreate(b);
    // blah blah blah
    int theID = getIntent().getExtras().getInt("the_image_id");
    imageView.setImageResource(theID);
}

我假设您已经为OpenImage活动构建了一个布局,并且您已经初始化了imageView对象,依此类推。这里重要的是你学习如何在活动之间传递数据。