我在GridView上显示来自json的数据时遇到了问题,触摸滚动时是我的GridView震动(生涩)。如何解决这个问题 - 让它运行得更顺畅? 我使用Picasso库从json的URL加载图像。 这是我的适配器:
package com.example.phohay.Adapter;
import java.util.ArrayList;
import java.util.List;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.example.phohay.Favorite.Favourite;
import com.example.phohay.com.R;
import com.example.phohay.data.Posts;
import com.squareup.picasso.Picasso;
@SuppressLint("NewApi")
public class AdapterHome extends BaseAdapter {
private List<Posts> items = new ArrayList<Posts>();
private LayoutInflater inflater;
private Integer[] id;
Context mContext;
Boolean isBookMark = false;
public AdapterHome(Context context, List<Posts> items2) {
inflater = LayoutInflater.from(context);
items = items2;
mContext = context;
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int i) {
return items.get(i);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(final int i, View view, ViewGroup viewGroup) {
View v = view;
ImageView picture;
final RelativeLayout Rlayout_imgBook;
final ImageView imgBookMark;
TextView tv_View, tv_Name, tv_Comment;
v = inflater.inflate(R.layout.item_gridhome, viewGroup, false);
final Posts post = items.get(i);
Typeface fontTitle = Typeface.createFromAsset(mContext.getAssets(),
"font/AleoBold.otf");
picture = (ImageView) v.findViewById(R.id.imgPost);
tv_Comment = (TextView) v.findViewById(R.id.tv_Comment);
tv_View = (TextView) v.findViewById(R.id.tv_View);
tv_Name = (TextView) v.findViewById(R.id.tv_Name);
tv_Name.setTypeface(fontTitle);
imgBookMark = (ImageView) v.findViewById(R.id.imgBookmark);
Rlayout_imgBook = (RelativeLayout) v.findViewById(R.id.Rlayout_imgBook);
// gan gia tri
// Picasso.with(mContext).load(post.getPost_img().toString())
// .into(picture);
Picasso.with(mContext).load(post.getPost_img().toString())
.placeholder(R.drawable.error).error(R.drawable.error)
.into(picture);
String Cm = post.getComment().toString();
int idCm = Integer.parseInt(Cm);
if (idCm > 1000) {
int a = idCm / 1000;
int b = idCm % 1000;
if (b > 100) {
int c = b / 100;
tv_Comment.setText("" + a + "," + c + "k");
} else {
tv_Comment.setText("" + a + "k");
}
} else {
tv_Comment.setText(String.valueOf(idCm));
}
//tv_Comment.setText(post.getComment().toString());
String Tv = post.getView().toString();
int idtv = Integer.parseInt(Tv);
if (idtv > 1000) {
int a = idtv / 1000;
int b = idtv % 1000;
if (b > 100) {
int c = b / 100;
tv_View.setText("" + a + "," + c + "k");
} else {
tv_View.setText("" + a + "k");
}
} else {
tv_View.setText(String.valueOf(idtv));
}
//tv_View.setText(post.getView().toString());
tv_Name.setText(post.getTitle().toString());
// Rlayout_imgBook
// gan gia tri favotite
post.setIsFavorite(Favourite.isFavourited(Integer.parseInt(post
.getPost_id())));
if (post.getIsFavorite()) {
Rlayout_imgBook.setBackgroundColor(Color.parseColor("#55F73667"));
imgBookMark.setImageResource(R.drawable.selected);
} else {
Rlayout_imgBook.setBackgroundColor(Color.parseColor("#55000000"));
imgBookMark.setImageResource(R.drawable.bookmark);
}
//
imgBookMark.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
post.setIsFavorite(!post.getIsFavorite());
if (post.getIsFavorite()) {
Rlayout_imgBook.setBackgroundColor(Color
.parseColor("#55F73667"));
imgBookMark.setImageResource(R.drawable.selected);
Favourite.favourite(Integer.parseInt(post.getPost_id()));
// isBookMark = true;
} else {
Rlayout_imgBook.setBackgroundColor(Color
.parseColor("#55000000"));
imgBookMark.setImageResource(R.drawable.bookmark);
Favourite.removeFavourite(Integer.parseInt(post
.getPost_id()));
// isBookMark = false;
}
}
});
return v;
}
}
package com.example.phohay.Adapter;
import java.util.ArrayList;
import java.util.List;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.example.phohay.Favorite.Favourite;
import com.example.phohay.com.R;
import com.example.phohay.data.Posts;
import com.squareup.picasso.Picasso;
@SuppressLint("NewApi")
public class AdapterHome extends BaseAdapter {
private List<Posts> items = new ArrayList<Posts>();
private LayoutInflater inflater;
private Integer[] id;
Context mContext;
Boolean isBookMark = false;
public AdapterHome(Context context, List<Posts> items2) {
inflater = LayoutInflater.from(context);
items = items2;
mContext = context;
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int i) {
return items.get(i);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(final int i, View view, ViewGroup viewGroup) {
View v = view;
ImageView picture;
final RelativeLayout Rlayout_imgBook;
final ImageView imgBookMark;
TextView tv_View, tv_Name, tv_Comment;
v = inflater.inflate(R.layout.item_gridhome, viewGroup, false);
final Posts post = items.get(i);
Typeface fontTitle = Typeface.createFromAsset(mContext.getAssets(),
"font/AleoBold.otf");
picture = (ImageView) v.findViewById(R.id.imgPost);
tv_Comment = (TextView) v.findViewById(R.id.tv_Comment);
tv_View = (TextView) v.findViewById(R.id.tv_View);
tv_Name = (TextView) v.findViewById(R.id.tv_Name);
tv_Name.setTypeface(fontTitle);
imgBookMark = (ImageView) v.findViewById(R.id.imgBookmark);
Rlayout_imgBook = (RelativeLayout) v.findViewById(R.id.Rlayout_imgBook);
// gan gia tri
// Picasso.with(mContext).load(post.getPost_img().toString())
// .into(picture);
Picasso.with(mContext).load(post.getPost_img().toString())
.placeholder(R.drawable.error).error(R.drawable.error)
.into(picture);
String Cm = post.getComment().toString();
int idCm = Integer.parseInt(Cm);
if (idCm > 1000) {
int a = idCm / 1000;
int b = idCm % 1000;
if (b > 100) {
int c = b / 100;
tv_Comment.setText("" + a + "," + c + "k");
} else {
tv_Comment.setText("" + a + "k");
}
} else {
tv_Comment.setText(String.valueOf(idCm));
}
//tv_Comment.setText(post.getComment().toString());
String Tv = post.getView().toString();
int idtv = Integer.parseInt(Tv);
if (idtv > 1000) {
int a = idtv / 1000;
int b = idtv % 1000;
if (b > 100) {
int c = b / 100;
tv_View.setText("" + a + "," + c + "k");
} else {
tv_View.setText("" + a + "k");
}
} else {
tv_View.setText(String.valueOf(idtv));
}
//tv_View.setText(post.getView().toString());
tv_Name.setText(post.getTitle().toString());
// Rlayout_imgBook
// gan gia tri favotite
post.setIsFavorite(Favourite.isFavourited(Integer.parseInt(post
.getPost_id())));
if (post.getIsFavorite()) {
Rlayout_imgBook.setBackgroundColor(Color.parseColor("#55F73667"));
imgBookMark.setImageResource(R.drawable.selected);
} else {
Rlayout_imgBook.setBackgroundColor(Color.parseColor("#55000000"));
imgBookMark.setImageResource(R.drawable.bookmark);
}
//
imgBookMark.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
post.setIsFavorite(!post.getIsFavorite());
if (post.getIsFavorite()) {
Rlayout_imgBook.setBackgroundColor(Color
.parseColor("#55F73667"));
imgBookMark.setImageResource(R.drawable.selected);
Favourite.favourite(Integer.parseInt(post.getPost_id()));
// isBookMark = true;
} else {
Rlayout_imgBook.setBackgroundColor(Color
.parseColor("#55000000"));
imgBookMark.setImageResource(R.drawable.bookmark);
Favourite.removeFavourite(Integer.parseInt(post
.getPost_id()));
// isBookMark = false;
}
}
});
return v;
}
}
感谢任何帮助! G9。