您的位置:首页 > 其它

photoview-----图片放大与缩小

2017-03-24 13:35 120 查看
1:导依赖

   compile 'com.loopj.android:android-async-http:1.4.9'

    compile 'com.squareup.picasso:picasso:2.5.1'

    photoView   导jar包

    compile files('libs/uk-co-senab-photoview.jar')

    compile 'com.github.bumptech.glide:glide:3.5.2'

2:main_layout
<GridView

        android:id="@+id/gv"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:numColumns="3"

        />

点击item,跳过去activity的布局

<android.support.v4.view.ViewPager

        android:id="@+id/vp"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        />

适配器布局

<ImageView

        android:id="@+id/iv"

        android:layout_width="150dp"

        android:layout_height="150dp"

        android:scaleType="centerCrop"/>

最重要的布局

<uk.co.senab.photoview.PhotoView

        android:id="@+id/pv"

        android:layout_width="wrap_content"

        android:scaleType="centerCrop"

        android:layout_height="wrap_content"

        />

3:代码

public class ImageActivity extends AppCompatActivity {

    private ViewPager vp;

    private List<User.DataInfo> list;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_image);

        vp= (ViewPager) findViewById(R.id.vp);

        Intent intent = getIntent();

        User user = (User) intent.getSerializableExtra("user");

        list = user.data;

        int position = intent.getIntExtra("position", 0);

        vp.setAdapter(new PagerAdapter() {

            @Override

            public int getCount() {

                return list.size();

            }

            @Override

            public boolean isViewFromObject(View view, Object object) {

                return view==object;

            }

            @Override

            public Object instantiateItem(ViewGroup container, int position) {

                View view=View.inflate(ImageActivity.this,R.layout.item,null);

                PhotoView pv= (PhotoView) view.findViewById(R.id.pv);

                String image_url = list.get(position).image_url;

                Picasso.with(ImageActivity.this).load(image_url).into(pv);

                container.addView(view);

                return view;

            }

            @Override

            public void destroyItem(ViewGroup container, int position, Object object) {

                 container.removeView((View) object);

            }

        });

        vp.setCurrentItem(position);

    }

}

MAinActivity

public class MainActivity extends AppCompatActivity {

    private GridView gv;

    private List<User.DataInfo> list;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        gv= (GridView) findViewById(R.id.gv);

        //获取数据

        getServerData();

    }

    private void getServerData() {

        String url="http://mock.eoapi.cn/success/aDpzG1ZiKPbEI6JdXjqasb958Q1rBg9j";

        AsyncHttpClient client=new AsyncHttpClient();

        client.get(MainActivity.this, url, new TextHttpResponseHandler() {

            @Override

            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {

            }

            @Override

            public void onSuccess(int statusCode, Header[] headers, String responseString) {

                Gson gson=new Gson();

                final User user = gson.fromJson(responseString, User.class);

                list = user.data;

                gv.setAdapter(new MyAdapter());

                gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                    @Override

                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                        Intent it=new Intent(MainActivity.this,ImageActivity.class);

                        Bundle bundle=new Bundle();

                        bundle.putSerializable("user",user);

                        it.putExtras(bundle);

                        it.putExtra("position",position);

                        startActivity(it);

                    }

                });

            }

        });

    }

    class MyAdapter extends BaseAdapter{

        @Override

        public int getCount() {

            return list.size();

        }

        @Override

        public Object getItem(int position) {

            return position;

        }

        @Override

        public long getItemId(int position) {

            return 0;

        }

        @Override

        public View getView(int position, View convertView, ViewGroup parent) {

            ImageView image=new ImageView(MainActivity.this);

            Picasso.with(MainActivity.this).load(list.get(position).image_url).into(image);

            return image;

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: