用Picasso实现ImageSlider GridView

时间:2017-05-14 18:58:09

标签: android gridview picasso

我正在尝试制作网格视图库应用。当用户单击图像时,将显示完整图像。我无法理解如何实现ImageSlider并将图像保存到现有项目中的库中。

这是MainActivity:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        GridView gridView = (GridView) findViewById(R.id.grid);
        gridView.setAdapter(new ImageAdapter(this));

        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent i = new Intent(getApplicationContext(),FullImageActivity.class);
                i.putExtra("id", position);
                startActivity(i);
            }
        });
    }

这是我的ImageAdapter,其中包含图片:

public class ImageAdapter extends BaseAdapter {
   ImageView imageView;

    private Context context;

    public String Images[] =  {("http://www.fashionlady.in/wp-content/uploads/2016/03/creative-punjabi-mehndi-design-2016.jpg"),
            ("https://lumiere-a.akamaihd.net/v1/images/uk_toystory_chi_woody_n_5b5a006f.png?region=0,0,300,300"),
            ("https://lumiere-a.akamaihd.net/v1/images/open-uri20150422-20810-10n7ovy_9b42e613.jpeg"),
            ("http://www.wetpaint.com/wp-content/uploads/2015/11/toy-story-20th-anniversary.jpg"),
            ("http://i.imgur.com/4IZMjx3.jpg")};

    public ImageAdapter (Context c){
        context= c;    };

    @Override
    public int getCount() {
        return Images.length;
    }

    @Override
    public Object getItem(int position) {
        return Images[position];
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageview = new ImageView(context);

        imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageview.setLayoutParams(new GridView.LayoutParams(240,240));

        Picasso.with(context).load(Images[position]).placeholder(R.drawable.loading2).error(R.drawable.nointernet).into(imageview);

        return imageview;
    }
}

这是我的FullImageActivity:

public class FullImageActivity extends AppCompatActivity {

    TouchImageView img;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTitle("ViewPager");

        setContentView(R.layout.activity_full_image);


        Intent i = getIntent();
        TouchImageView img = new TouchImageView(this);

        int position = i.getExtras().getInt("id");
        ImageAdapter adapter = new ImageAdapter(this);
        List<ImageView> images = new ArrayList<ImageView>();

        img = (TouchImageView) findViewById(R.id.img);
        images.add(img);

        img.setMaxZoom(4f);
        Picasso.with(getApplicationContext()).load(adapter.Images[position]).into(img);

请帮帮我。

1 个答案:

答案 0 :(得分:0)

您可以通过在单击时将动画代码添加到图像来实现 看到这可能是有帮助的: http://www.viralandroid.com/2016/02/slide-down-and-slide-up-animation-in-android.html http://www.vogella.com/tutorials/AndroidAnimation/article.html