【发布时间】: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 帮助创建一个不同的类