晚上好,片段TabLayout/GridView的OutMemory
在創造我的第一個真正的個人項目,我有每個包含TabLayout 2/3片段5個片段。每個GridView約有50個圖像(有些參見200)。 但是當我在片段之間切換時,我很快就會到達OutMemory。 我處於創建/測試階段,我在應用程序中使用了8個Drawable(400px * 250px大小,大小在40kB到200kB之間)。
使用時使用的內存空間,第一個選擇是啓動骰子(8個圖像),每個後續選擇代表包含TabLayout的片段的打開。長達30秒或我返回到第一個片段。
在片段創建TabLayout:
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getActivity().getSupportFragmentManager());
FragmentList fla = FragmentList.newInstance("ONE", ContextCompat.getColor(getContext(), R.color.w_blue_grey_40));
adapter.addFragment(fla, "ONE");
fla = FragmentList.newInstance("TWO", ContextCompat.getColor(getContext(), R.color.w_blue_grey_40));
adapter.addFragment(fla, "TWO");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends <strong>FragmentStatePagerAdapter</strong> {
private final List<FragmentList> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(FragmentList fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
我用畢加索等圖案片夾在我GridViewAdapter:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
TestHolder holder = null;
if (row == null) {
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
row = mInflater.inflate(R.layout.card_test, null);
holder = new TestHolder();
holder.test_image = (ImageView) row.findViewById(R.id.test_image);
row.setTag(holder);
} else {
holder = (TestHolder) row.getTag();
}
Test test = data.get(position);
Picasso.with(context).load(test.getImage()).into(holder.test_image);
return row;
}
class TestHolder {
ImageView test_image;
}
Thx all for your answers。
試試這個答案... http://stackoverflow.com/a/31260418/3678308 –
* 400像素* 250像素大小,大小:40KB和200kB的之間沒有*,大小爲給定寬度和高度爲常量它是400kB – Selvin