PhoneView

来源:互联网 发布:htcg5软件 编辑:程序博客网 时间:2024/05/22 06:35

//导包

//拿到数据,点击条目跳转传值(传集合和下标)

package com.example.administrator.phoneview_demo;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;import com.google.gson.Gson;import com.loopj.android.http.AsyncHttpClient;import com.loopj.android.http.TextHttpResponseHandler;import com.squareup.picasso.Picasso;import java.util.ArrayList;import java.util.List;import cz.msebera.android.httpclient.Header;public class MainActivity extends AppCompatActivity  {    private String url="https://mock.eolinker.com/success/gIbgeNycc15SNh5mrSNTGC2Tr5WTUsCM";    private GridView grid_item;    private List<Info.DataBean> data;    private Myadapter adapter;    private ArrayList<String>list_image=new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        grid_item = (GridView) findViewById(R.id.grid_item);        AsyncHttpClient client=new AsyncHttpClient();        client.get(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();                Info info = gson.fromJson(responseString, Info.class);                data = info.getData();                for (int i = 0; i <data.size() ; i++) {                    list_image.add(data.get(i).getImage_url());                }                if(adapter==null){                    adapter = new Myadapter();                    grid_item.setAdapter(adapter);                }else{                    adapter.notifyDataSetChanged();                }            }        });        grid_item.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                Intent intent=new Intent(MainActivity.this,PhoneView_demo.class);                intent.putStringArrayListExtra("url",list_image);                intent.putExtra("position",position);                startActivity(intent);            }        });    }    class Myadapter extends BaseAdapter{        @Override        public int getCount() {            return data.size();        }        @Override        public Object getItem(int position) {            return data.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            ViewHolder holder=null;            if(convertView==null){                convertView=View.inflate(MainActivity.this,R.layout.grid_item_layout,null);                holder=new ViewHolder();                holder.image_p= (ImageView) convertView.findViewById(R.id.image_p);                convertView.setTag(holder);            }else{                holder= (ViewHolder) convertView.getTag();            }            Picasso.with(MainActivity.this).load(data.get(position).getImage_url()).into(holder.image_p);            return convertView;        }        class ViewHolder{            ImageView image_p;        }    }}
//跳转到Phoneview拿到数据,传值给Fragment.

package com.example.administrator.phoneview_demo;import android.content.Intent;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import java.util.ArrayList;public class PhoneView_demo extends AppCompatActivity {    private ViewPager viewpager;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_phone_view_demo);        viewpager = (ViewPager) findViewById(R.id.viewpager);        //获取数据        Intent intent=getIntent();        int position = intent.getIntExtra("position",0);        final ArrayList<String> url = intent.getStringArrayListExtra("url");        //设置适配器        viewpager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {            @Override            public Fragment getItem(int position) {                Fragment_picture fragment_picture=new Fragment_picture();                Bundle bundle=new Bundle();                bundle.putString("url",url.get(position));                fragment_picture.setArguments(bundle);                return fragment_picture;            }            @Override            public int getCount() {                return url.size();            }        });        viewpager.setCurrentItem(position);    }}
//Fragment拿到数据,设置图片点击事件

package com.example.administrator.phoneview_demo;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.squareup.picasso.Picasso;import uk.co.senab.photoview.PhotoView;import uk.co.senab.photoview.PhotoViewAttacher;public class Fragment_picture extends Fragment {    private View view;    private PhotoView pv;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        view = inflater.inflate(R.layout.activity_fragment_picture, null);        return view;    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        pv = (PhotoView) view.findViewById(R.id.pv);        Bundle bundle=getArguments();        String url = bundle.getString("url");        Picasso.with(getActivity()).load(url).into(pv);        pv.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() {            @Override            public void onPhotoTap(View view, float v, float v1) {                getActivity().finish();            }        });    }}

0 0
原创粉丝点击