加载数据时GridView震惊从Json获取URL图像

时间:2015-09-11 07:57:13

标签: android

我在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。

0 个答案:

没有答案