2016-11-17 205 views
0

我开始使用android,并在网上学习了一些教程。我试图创建一个Android图库图像,它的工作原理,但只有当我放入可绘制文件夹的图像很小。如果我在里面放置更大尺寸和更好质量的图像,我的画廊真的很慢。我该怎么办?Android图片库非常缓慢

主要活动:

public class MainActivity extends AppCompatActivity { 

@Override 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    GridView gridview = (GridView) findViewById(R.id.gridview); 
    gridview.setAdapter(new ImageAdapter(this)); 

    gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, 
           int position, long id) { 
      Toast.makeText(MainActivity.this, "" + position, 
        Toast.LENGTH_SHORT).show(); 
     } 
    }); 
} 

ImageAdapter:

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 0; 
} 

// 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(300, 300)); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     imageView.setPadding(4, 4, 4, 4); 
    } else { 
     imageView = (ImageView) convertView; 
    } 

    imageView.setImageResource(mThumbIds[position]); 
    return imageView; 
} 



// references to our images 
private Integer[] mThumbIds = { 



     R.drawable.sample_2, R.drawable.sample_3, 
     R.drawable.sample_4, R.drawable.sample_5, 
     R.drawable.sample_6, R.drawable.sample_7, 
     R.drawable.sample_0, 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, 
     R.drawable.sample_0, 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 
}; 

感谢大家,这将有助于我。

+0

'我试图创建一个android图库图像'。你是什​​么意思?没有画廊。只有一个图库应用程序。 – greenapps

+0

我的意思是我想用一些图像创建一个网格,当我使用高质量的图像放入可绘制文件夹时,我的应用程序变得非常慢。 – Ennio

+0

添加到清单 android:largeHeap =“true” –

回答

0

你只需要加载这些图像的缩略图并将它们加载到网格中,阅读关于在互联网和tutorials上创建和缓存缩略图的更多信息。当用户单击该缩略图时,即特定的网格位置,则应加载原始图像,显示它。在毕加索图书馆尝试一下,会帮助你出来