我有一个代码可以动态地将图片和图片视图添加到我的应用中。我想为所有图像视图设置一个onClick,以便在单击每个图像时,图像显示完整,就像当你点击它打开的Facebook图像时,你可以点击下一个和上一个。我已经看到了很多其他的问题和答案,但没有一个适合我想要的。
final int[] images = { R.drawable.abi1, R.drawable.abi2, R.drawable.abi3,
R.drawable.abi4 };
LinearLayout linearLayout1 = (LinearLayout) findViewById(R.id.bottomView);
for (int x = 0; x < images.length; x++) {
final Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),
images[x]);
int width = bitmapOrg.getWidth();
int height = bitmapOrg.getHeight();
int newWidth = 200;
int newHeight = 200;
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
matrix.postRotate(0);
Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, width,
height, matrix, true);
BitmapDrawable bmd = new BitmapDrawable(getResources(),
resizedBitmap);
ImageView imageView = new ImageView(this);
imageView.setPadding(2, 0, 9, 5);
imageView.setImageDrawable(bmd);
imageView.setTag(x);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
linearLayout1.addView(imageView);
}
答案 0 :(得分:0)
从onClick()
方法开始新活动
Intent intent = new Intent(YourActivity.this, YourFullScreenActivity.class);
intent.putExtra("selected_image", int imageResourceId);
startActivity(intent);
在您的新活动中,使用ViewPager以全屏显示图像。 ViewPager将允许您切换到下一个图像。有很多关于实现ViewPager的教程。 请注意,在意图中我正在通过&#34; selected_image&#34;额外。您的新活动可以使用它来显示所选图像。
顺便说一句,如果你的代码分辨率非常高,你的代码可能会出现内存不足错误。该网站http://developer.android.com/training/displaying-bitmaps/load-bitmap.html解释了如何有效加载位图。如果您只显示应用资源文件夹中的图像,则可以跳过加载位图。只需致电setImageResource()
,根据需要设置setLayoutParams()
和setScaleType()
的尺寸。 Android系统会为您缩放它们。