在ArrayList中处理图像的最有效方法

时间:2015-09-21 01:47:34

标签: java android arraylist

我正在创建一个图像视图应用程序,我在arrayList中有图像(用于测试目的),当用户点击GridView中的图像时,它传递给另一个要全屏查看的活动,我想添加手势,如向左和向右滑动,但问题是如何在另一个活动中,我无法直接访问图像,因为它们在另一个活动中,所以我无法刷卡,除非我传递图像arrayList与每次打开的其他活动的图像似乎效率不高,我怎么能绕过这个呢?

将图像和图像ArrayList传递给活动2的代码,以便可以在FullScreen中打开图像:

   gridView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            ImageItem item = (ImageItem) parent.getItemAtPosition(position);
            Intent intent = new Intent(MainActivity.this, DetailsActivity.class);
            intent.putExtra("title", item.getTitle());
            intent.putExtra("image", item.getImage());
            intent.putExtra("position", position);
            intent.putExtra("imagesReference", getData());

在活动2中获取已发送数据并显示数据的代码:

 String title = getIntent().getStringExtra("title");
    Bitmap bitmap = getIntent().getParcelableExtra("image");
    images = getIntent().getParcelableExtra("imagesReference");
    imagePosition = getIntent().getStringExtra("position");
    TextView titleTextView = (TextView) findViewById(R.id.title);
    titleTextView.setText(title);

    final ImageView imageView = (ImageView) findViewById(R.id.image);
    imageView.setImageBitmap(bitmap);

1 个答案:

答案 0 :(得分:0)

如果我按照你的问题,你可以将图像从一个活动传递到另一个活动。 将ImageView转换为位图

imageView.buildDrawingCache();
Bitmap bitmap = imageView.getDrawingCache();

在第二个活动中

Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImage", bitmap);

解决方案2:(适用于简易和轻松的方式)

发送资源整数值,如:

主要活动

Intent intent = new Intent(this, SecondActivity.class); 
intent.putExtra("resourseInt", R.drawable.image);    
startActivity(intent); 

第二次活动

@Override 
public void onCreate(Bundle bundle) 
{ 

    super.onCreate(bundle); 
    setContentView(R.layout.pantalla); 
    Bundle extras = getIntent().getExtras(); 
    if (extras == null) 
    { 
        return; 
    } 
    int res = extras.getInt("resourseInt"); 

    ImageView view = (ImageView) findViewById(R.id.something); 

    view.setImageResourse(res); 
}

     Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");

然后在ImageView中显示位图。