【问题标题】:Implementing ImageSlider GridView with Picasso用毕加索实现 ImageSlider GridView
【发布时间】:2017-10-13 13:02:29
【问题描述】:

我正在尝试制作一个网格视图库应用程序。当用户单击图像时,将显示完整图像。我只是不明白如何实现 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);

请帮帮我。

【问题讨论】:

  • 你试过用 ViewPager 和 FragmentStatePager 适配器来制作滑块吗?
  • 我试过 View Pager。你能告诉我应该做什么,因为你可以看到我有两个活动。我应该为 ViewPager.Plz 帮助创建一个不同的类

标签: android gridview picasso


【解决方案1】:

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

【讨论】:

  • 感谢您的帮助,但这不是我想要的。
猜你喜欢
  • 2017-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-31
  • 2016-03-12
  • 2016-02-09
  • 2017-09-18
相关资源
最近更新 更多