我使用这个tutorial为Android制作了一个带有GridView的应用程序。我放了所有的图像 进入drawable-hdpi文件夹。 gridview工作正常,但现在我想在用户触摸gridview中的图像时启动或打开另一个活动。新活动应该是该单个图像的预览。
我该怎么做?
这是我如何推杆但它不起作用 我的1活动:
gridView.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
Intent fullScreenIntent = new Intent(v.getContext(), 2activity.class);
fullScreenIntent.putExtra(1activity.class.getName(),imageIDs);
1activity.this.startActivity(fullScreenIntent);
}
});
我的2活动:
public void onCreate(Bundle savedInstanceState, int[] imageIDs) {
super.onCreate(savedInstanceState);
setContentView(R.layout.image);
Intent intent = getIntent();
long imageIDs = (Long) intent.getExtras().get(2activity.class.getName());
ImageView imageView = (ImageView)v.findViewById(R.id.preview);
imageView.setLayoutParams( new ViewGroup.LayoutParams(WindowManager.LayoutParams.FILL_PARENT, WindowManager.LayoutParams.FILL_PARENT));
imageView.setImageResource((int) imageIDs);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
}
当我从1活动转到2活动时,它只显示空白它没有从第一个活动中捕获的图像????我该怎么办?
答案 0 :(得分:1)
错误:
long imageIDs = (Long) intent.getExtras().get(2activity.class.getName());
错误的密钥,通过以下方式修复:
long imageIDs = (Long) intent.getExtras().get(1activity.class.getName());
答案 1 :(得分:0)
创建一个OnItemClickListener(http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html),用于启动您的活动并使用setOnItemClickListener方法(http://developer.android.com/reference/android/widget/AdapterView.html#setOnItemClickListener%28android.widget.AdapterView .OnItemClickListener%29)将侦听器附加到GridView。
-Kurtis
答案 2 :(得分:0)
在您的2Activity中,您获得
的空值long imageIDs = (Long) intent.getExtras().get(2activity.class.getName());
你应该放在这里:
int imageIDs1 = intent.getIntExtra(2activity.class.getName(), R.drawable.icon);
答案 3 :(得分:0)
FragmentManager fm = activity.getFragmentManager();
ImageDialogFragment newFragment = ImageDialogFragment.newInstance();
newFragment .setArguments(bundle);
newFragment .show(fm, "slideshow");
了解更多信息,请点击here
答案 4 :(得分:0)
在图像上单击获取图像位图,将位图转换为字节并通过意图将字节传递给您的活动
Bitmap b=image.getDrawingCache();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG,75, stream);
byte[] bytes = stream.toByteArray();
Intent i = new Intent(mContext, ShowImageActivity.class);
i.putExtra("Bitmap", bytes);
startActivity(i);
在第二个活动中从包中获取字节并设置为imageview
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
if(bundle.containsKey("Bitmap")) {
byte[] bytes = bundle.getByteArray("Bitmap");
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
BitmapDrawable ob = new BitmapDrawable(getResources(), bmp);
photo.setBackground(ob);
}
}