Skip to content

Commit a6c231b

Browse files
committed
Adapt with ViewHolder Pattern on adapter
1 parent 4fa1a96 commit a6c231b

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ an Android Parallax ListView item, this effect inspired by sound cloud android a
55
the scroll detector is using technique from [http://stackoverflow.com/questions/16791100/detect-scroll-up-scroll-down-in-listview](http://stackoverflow.com/questions/16791100/detect-scroll-up-scroll-down-in-listview)
66

77
example video:
8-
[![VIdeo Example](http://img.youtube.com/vi/BbMvH5jAqA8/0.jpg)](http://www.youtube.com/watch?v=BbMvH5jAqA8)
8+
9+
[![Video Example](http://img.youtube.com/vi/BbMvH5jAqA8/0.jpg)](http://www.youtube.com/watch?v=BbMvH5jAqA8)

app/src/main/java/com/arjunalabs/parallaxlistviewitem/app/ImageListAdapter.java

+27-9
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,33 @@ public long getItemId(int i) {
3636
}
3737

3838
@Override
39-
public View getView(int i, View view, ViewGroup viewGroup) {
40-
ImageView imageView = new ImageView(context);
41-
imageView.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, 300));
42-
imageView.setAdjustViewBounds(true);
43-
imageView.setScaleType(ImageView.ScaleType.MATRIX);
44-
Matrix matrix = imageView.getImageMatrix();
39+
public View getView(int position, View convertView, ViewGroup viewGroup) {
40+
ViewHolder viewHolder;
41+
if (convertView == null) {
42+
ImageView imageView = new ImageView(context);
43+
imageView.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, 300));
44+
imageView.setAdjustViewBounds(true);
45+
imageView.setScaleType(ImageView.ScaleType.MATRIX);
46+
Matrix matrix = imageView.getImageMatrix();
47+
matrix.postTranslate(0, -100);
48+
imageView.setImageMatrix(matrix);
49+
imageView.setImageResource(R.drawable.lorempixel);
50+
viewHolder = new ViewHolder();
51+
convertView = imageView;
52+
viewHolder.imageView = imageView;
53+
convertView.setTag(viewHolder);
54+
}
55+
viewHolder = (ViewHolder) convertView.getTag();
56+
Matrix matrix = viewHolder.imageView.getImageMatrix();
57+
matrix.reset();
4558
matrix.postTranslate(0, -100);
46-
imageView.setImageMatrix(matrix);
47-
imageView.setImageResource(R.drawable.lorempixel);
48-
return imageView;
59+
viewHolder.imageView.setImageMatrix(matrix);
60+
61+
return convertView;
62+
}
63+
64+
static class ViewHolder {
65+
ImageView imageView;
4966
}
67+
5068
}

0 commit comments

Comments
 (0)