Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit eec3d0b

Browse files
committedMar 21, 2016
完成各种方式的图片加载功能
1 parent 502da54 commit eec3d0b

File tree

9 files changed

+366
-8
lines changed

9 files changed

+366
-8
lines changed
 

‎MyApplication/app/src/main/java/org/geek/universalimageloaderexample/ImageLoadProxy.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
1313
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
1414
import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
15+
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
1516
import com.nostra13.universalimageloader.core.listener.ImageLoadingProgressListener;
1617
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
1718

@@ -170,4 +171,23 @@ public static DisplayImageOptions getOptions4PictureList() {
170171
.build();
171172
}
172173

174+
/**
175+
* gallery 图片加载
176+
*
177+
* @return
178+
*/
179+
180+
public static DisplayImageOptions getOptions4Gallery() {
181+
return new DisplayImageOptions.Builder()
182+
.showImageOnLoading(R.drawable.ic_empty)
183+
.showImageForEmptyUri(R.drawable.ic_empty)
184+
.showImageOnFail(R.drawable.ic_error)
185+
.cacheInMemory(true)
186+
.cacheOnDisk(true)
187+
.considerExifParams(true)
188+
.bitmapConfig(Bitmap.Config.RGB_565)
189+
.displayer(new RoundedBitmapDisplayer(90))
190+
.build();
191+
}
192+
173193
}

‎MyApplication/app/src/main/java/org/geek/universalimageloaderexample/MainActivity.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import android.view.MenuItem;
1515
import android.view.View;
1616

17+
import org.geek.universalimageloaderexample.fragment.ImageComplexFragment;
18+
import org.geek.universalimageloaderexample.fragment.ImageGalleryFragment;
1719
import org.geek.universalimageloaderexample.fragment.ImageGridViewFragment;
1820
import org.geek.universalimageloaderexample.fragment.ImageListFragment;
1921
import org.geek.universalimageloaderexample.fragment.ImageListHeaderFragment;
@@ -106,25 +108,28 @@ public boolean onNavigationItemSelected(MenuItem item) {
106108

107109
fragment = new ImageGridViewFragment();
108110

109-
110111
} else if (id == R.id.nav_gallery) {
111112
L.et("main", "nav_gallery");
112113

114+
fragment = new ImageGalleryFragment();
115+
113116
} else if (id == R.id.nav_viewpager) {
114117
L.et("main", "nav_viewpager");
115118
fragment = new ImageViewpagerFragment();
119+
} else if (id == R.id.nav_complex) {
120+
L.et("main", "complex");
121+
122+
fragment = new ImageComplexFragment();
123+
124+
} else if (id == R.id.nav_header) {
125+
L.et("main", "nav_header");
126+
127+
fragment = new ImageListHeaderFragment();
116128
} else if (id == R.id.nav_share) {
117129
L.et("main", "nav_share");
118130
} else if (id == R.id.nav_send) {
119131
L.et("main", "send");
120132

121-
} else if (id == R.id.nav_complex){
122-
L.et("main" , "complex");
123-
124-
} else if (id == R.id.nav_header){
125-
L.et("main" , "nav_header");
126-
127-
fragment = new ImageListHeaderFragment();
128133
}
129134
getSupportFragmentManager().beginTransaction().replace(R.id.content, fragment).commit();
130135

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package org.geek.universalimageloaderexample.adapter;
2+
3+
import android.content.Context;
4+
import android.view.LayoutInflater;
5+
import android.view.View;
6+
import android.view.ViewGroup;
7+
import android.widget.BaseAdapter;
8+
import android.widget.ImageView;
9+
10+
import com.nostra13.universalimageloader.core.ImageLoader;
11+
12+
import org.geek.universalimageloaderexample.Constants;
13+
import org.geek.universalimageloaderexample.ImageLoadProxy;
14+
import org.geek.universalimageloaderexample.R;
15+
16+
/**
17+
* File Description :
18+
*
19+
* @author : zhanggeng
20+
* @version : v1.0
21+
* **************修订历史*************
22+
* @email : zhanggengdyx@gmail.com
23+
* @date : 16/3/21 16:50
24+
*/
25+
public class ImageGalleryAdapter extends BaseAdapter {
26+
27+
private LayoutInflater layoutInflater;
28+
29+
public ImageGalleryAdapter(Context context) {
30+
this.layoutInflater = LayoutInflater.from(context);
31+
}
32+
33+
@Override
34+
public int getCount() {
35+
return Constants.IMAGES.length;
36+
}
37+
38+
@Override
39+
public Object getItem(int position) {
40+
return null;
41+
}
42+
43+
@Override
44+
public long getItemId(int position) {
45+
return 0;
46+
}
47+
48+
@Override
49+
public View getView(int position, View convertView, ViewGroup parent) {
50+
51+
52+
ViewHolder holder;
53+
54+
if (convertView == null){
55+
56+
convertView = layoutInflater.inflate(R.layout.item_fragment_gallery , parent , false);
57+
holder = new ViewHolder();
58+
holder.imageView = (ImageView) convertView.findViewById(R.id.img_gallery);
59+
60+
convertView.setTag(holder);
61+
}else {
62+
holder = (ViewHolder) convertView.getTag();
63+
}
64+
65+
ImageLoader.getInstance().displayImage(Constants.IMAGES[position] , holder.imageView , ImageLoadProxy.getOptions4Gallery());
66+
67+
68+
return convertView;
69+
}
70+
71+
class ViewHolder {
72+
private ImageView imageView;
73+
}
74+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package org.geek.universalimageloaderexample.adapter;
2+
3+
import android.support.v4.app.Fragment;
4+
import android.support.v4.app.FragmentManager;
5+
import android.support.v4.app.FragmentPagerAdapter;
6+
7+
import org.geek.universalimageloaderexample.fragment.ImageGalleryFragment;
8+
import org.geek.universalimageloaderexample.fragment.ImageListFragment;
9+
import org.geek.universalimageloaderexample.utils.L;
10+
11+
/**
12+
* File Description : imagepager
13+
*
14+
* @author : zhanggeng
15+
* @version : v1.0
16+
* **************修订历史*************
17+
* @email : zhanggengdyx@gmail.com
18+
* @date : 16/3/21 17:23
19+
*/
20+
public class ImagePagerAdapter extends FragmentPagerAdapter {
21+
22+
23+
public ImagePagerAdapter(FragmentManager fm) {
24+
super(fm);
25+
26+
}
27+
28+
@Override
29+
public Fragment getItem(int position) {
30+
31+
L.et("position", position + "======");
32+
33+
34+
switch (position) {
35+
case 0:
36+
return new ImageListFragment();
37+
case 1:
38+
return new ImageGalleryFragment();
39+
default:
40+
41+
L.et("position", position + "======");
42+
return null;
43+
}
44+
}
45+
46+
@Override
47+
public int getCount() {
48+
return 2;
49+
}
50+
51+
@Override
52+
public CharSequence getPageTitle(int position) {
53+
switch (position) {
54+
case 0:
55+
return "list";
56+
case 1:
57+
return "grid";
58+
default:
59+
return null;
60+
}
61+
}
62+
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package org.geek.universalimageloaderexample.fragment;
2+
3+
import android.os.Bundle;
4+
import android.support.v4.view.ViewPager;
5+
import android.view.View;
6+
7+
import org.geek.universalimageloaderexample.R;
8+
import org.geek.universalimageloaderexample.adapter.ImagePagerAdapter;
9+
import org.geek.universalimageloaderexample.base.BaseFragment;
10+
import org.geek.universalimageloaderexample.utils.L;
11+
12+
import butterknife.Bind;
13+
import butterknife.ButterKnife;
14+
15+
/**
16+
* File Description : Complex fragment
17+
*
18+
* @author : zhanggeng
19+
* @version : v1.0
20+
* **************修订历史*************
21+
* @email : zhanggengdyx@gmail.com
22+
* @date : 16/3/21 17:14
23+
*/
24+
public class ImageComplexFragment extends BaseFragment {
25+
26+
private static final String STATE_POSITION = "STATE_POSITION";
27+
28+
View baseView;
29+
30+
@Bind(R.id.pager)
31+
ViewPager viewPager;
32+
33+
private int position = 0;
34+
35+
@Override
36+
public void initData() {
37+
38+
}
39+
40+
@Override
41+
public void onCreate(Bundle savedInstanceState) {
42+
super.onCreate(savedInstanceState);
43+
44+
position = savedInstanceState == null ? 0 : savedInstanceState.getInt(STATE_POSITION);
45+
46+
L.et("position", position + "======");
47+
}
48+
49+
@Override
50+
protected int getLayoutId() {
51+
return R.layout.fragment_complex;
52+
}
53+
54+
@Override
55+
public void onSaveInstanceState(Bundle outState) {
56+
outState.putInt(STATE_POSITION, viewPager.getCurrentItem());
57+
}
58+
59+
@Override
60+
public View initView() {
61+
62+
baseView = inflateView(getLayoutId());
63+
ButterKnife.bind(this, baseView);
64+
65+
66+
ImagePagerAdapter imagePagerAdapter = new ImagePagerAdapter(getFragmentManager());
67+
68+
viewPager.setAdapter(imagePagerAdapter);
69+
70+
viewPager.setCurrentItem(position);
71+
72+
imagePagerAdapter.notifyDataSetChanged();
73+
74+
L.et("position", position + "======");
75+
76+
return baseView;
77+
}
78+
79+
80+
@Override
81+
public void onDestroy() {
82+
super.onDestroy();
83+
ButterKnife.unbind(this);
84+
}
85+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package org.geek.universalimageloaderexample.fragment;
2+
3+
import android.view.View;
4+
import android.widget.Gallery;
5+
6+
import org.geek.universalimageloaderexample.R;
7+
import org.geek.universalimageloaderexample.adapter.ImageGalleryAdapter;
8+
import org.geek.universalimageloaderexample.base.BaseFragment;
9+
10+
import butterknife.Bind;
11+
import butterknife.ButterKnife;
12+
13+
/**
14+
* File Description : gallery fragment
15+
*
16+
* @author : zhanggeng
17+
* @version : v1.0
18+
* **************修订历史*************
19+
* @email : zhanggengdyx@gmail.com
20+
* @date : 16/3/21 10:54
21+
*/
22+
public class ImageGalleryFragment extends BaseFragment {
23+
24+
private View mBaseView;
25+
26+
27+
@Bind(R.id.gallery)
28+
Gallery gallery;
29+
30+
@Override
31+
public void initData() {
32+
33+
}
34+
35+
@Override
36+
protected int getLayoutId() {
37+
return R.layout.fragment_gallery;
38+
}
39+
40+
@Override
41+
public View initView() {
42+
43+
mBaseView = inflateView(getLayoutId());
44+
45+
ButterKnife.bind(this, mBaseView);
46+
47+
ImageGalleryAdapter imageGalleryAdapter = new ImageGalleryAdapter(getActivity());
48+
49+
gallery.setAdapter(imageGalleryAdapter);
50+
51+
return mBaseView;
52+
}
53+
54+
@Override
55+
public void onDestroy() {
56+
super.onDestroy();
57+
58+
ButterKnife.unbind(this);
59+
}
60+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:layout_width="match_parent"
4+
android:layout_height="match_parent"
5+
android:orientation="vertical">
6+
7+
8+
<android.support.v4.view.ViewPager
9+
android:id="@+id/pager"
10+
android:layout_width="match_parent"
11+
android:layout_height="match_parent">
12+
13+
<android.support.v4.view.PagerTitleStrip
14+
android:id="@+id/pager_title_strip"
15+
android:layout_width="match_parent"
16+
android:layout_height="30dp"
17+
android:layout_gravity="top"
18+
android:paddingBottom="4dp"
19+
android:paddingTop="4dp" />
20+
</android.support.v4.view.ViewPager>
21+
22+
</LinearLayout>
There was a problem loading the remainder of the diff.

0 commit comments

Comments
 (0)
Failed to load comments.