Display image based on Gridview selection from previous activity(根据从先前活动中选择的 Gridview 显示图像)
问题描述
我目前有一个显示一些缩略图的工作网格视图.目前,当您选择一张图片时,它会将更大分辨率的图片保存为壁纸.
I currently have a working gridview displaying some thumbnails. Currently, when you select an image it will save a larger resolution of the image as a wallpaper.
我想要做的是打开一个新的意图,然后根据单击的 GridView 位置显示全分辨率图像.我不确定如何从新活动/意图中找出点击了哪个位置.
What I want to do is open a new intent and then display the full resolution image based on the GridView position clicked. I'm not sure how I find out what position was clicked from the new activity/intent.
这就是我的主要活动
public class test extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(getApplicationContext()));
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(test.this, "" + position + "" + id, Toast.LENGTH_SHORT).show();
//Make a Bitmap from the Resource
ImageAdapter i = (ImageAdapter)parent.getAdapter();
Bitmap mBitmap = BitmapFactory.decodeResource(getResources(),(int)i.getItemId(position));
//Get the WallpaperManager
WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext());
try {
//Set the clicked bitmap
myWallpaperManager.setBitmap(mBitmap);
Toast.makeText(test.this, "Wallpaper set", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
Toast.makeText(test.this, "Error setting wallpaper", Toast.LENGTH_SHORT).show();
}
}
});
}
}
图像适配器
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return mFullSizeIds[position];
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) { // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// references to our images
private Integer[] mThumbIds = {
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
};
private Integer[] mFullSizeIds = {
R.drawable.wallpaper1,
R.drawable.wallpaper2,
R.drawable.wallpaper3,
R.drawable.wallpaper4,
R.drawable.wallpaper5,
R.drawable.wallpaper6,
R.drawable.wallpaper7
};
}
和空白的 FullView 模板
And blank FullView template
public class FullView extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fullview);
ImageView imageview;
imageview.setImageResource(mFullSizeIds[**]) <--- How to set ** to what GridView position was selected?
}
}
我还没有真正在 FullView 活动中编写任何内容,因为我不知道如何在这个新活动中传递从 GridView 中单击的位置.
I haven't really written anything in the FullView activity yet due to being unaware of how to pass the position that was clicked from the GridView in this new activity.
(我也没有在我的主要活动中编写意图代码,所以你可以看到它目前是如何工作的)
(I haven't written the intent code in my main activity either so you can see how it currently works)
如何将选中的 gridview 位置传递到新活动中?
How do I pass the gridview position that was selected into the new activity?
推荐答案
在您的事件处理程序(OnItemClickListener)中,您可以通过 mThumbs[position] 获取图像的资源 ID.将此作为额外内容添加到用于启动 FullView Activity 的 Intent 中.
In your event handler (the OnItemClickListener), you can get the resource ID of the image as mThumbs[position]. Add this as an extra to the Intent you use to start your FullView Activity.
这篇关于根据从先前活动中选择的 Gridview 显示图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:根据从先前活动中选择的 Gridview 显示图像
基础教程推荐
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01