我是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
答案 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
对象,依此类推。这里重要的是你学习如何在活动之间传递数据。