How to implement Pinch Zoom in Picasso library?

I am using the Picasso library in my current project http://square.imtqy.com/picasso/ . Everything works fine, but I just can’t figure out how to implement Pinch Zoom for all the images downloaded from the URL. Honestly, I don’t even know where to place the onClickListener . My application has several fragments, and each of them has 2 Tabs , the first Tab has a ListView , and the second Tab has several images displayed in the GridView :

Bmw.java

 public class Bmw2 extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(com.zenyt.R.layout.bmw2, container, false); GridView gv = (GridView) rootView.findViewById(R.id.grid_view); gv.setAdapter(new com.zenyt.SampleGridViewAdapter(getActivity())); gv.setOnScrollListener(new SampleScrollListener(getActivity())); return rootView; } 

SampleGridViewAdapter

 public final class SampleGridViewAdapter extends BaseAdapter { private final Context context; private final List<String> urls = new ArrayList<String>(); public SampleGridViewAdapter(Context context) { this.context = context; // Ensure we get a different ordering of images on each run. Collections.addAll(urls, Data.URLS); Collections.shuffle(urls); } @Override public View getView(int position, View convertView, ViewGroup parent) { SquaredImageView view = (SquaredImageView) convertView; if (view == null) { view = new SquaredImageView(context); view.setScaleType(CENTER_CROP); } // Get the image URL for the current position. String url = getItem(position); // Trigger the download of the URL asynchronously into the image view. Picasso.with(context) // .load(url) // .placeholder(R.drawable.placeholder) // .error(R.drawable.error) // .fit() // .tag(context) // .into(view); return view; } @Override public int getCount() { return urls.size(); } @Override public String getItem(int position) { return urls.get(position); } @Override public long getItemId(int position) { return position; } } 

Data.java

 final class Data { static final String BASE = "http://www.hdcarwallpapers.com/walls/"; static final String BASE2 = "http://www3.cellsea.com//content/wallpaper/"; static final String EXT = ".jpg"; static final String[] URLS = { BASE + "prior_design_audi_r8_gt850-wide" + EXT, BASE + "2015_audi_rs6_avant_exclusive-wide" + EXT, BASE + "2015_audi_tt_coupe_quattro-wide" + EXT, BASE + "2015_audi_tt_coupe_quattro-wide" + EXT, BASE + "2014_audi_prologue_concept_4-wide" + EXT, BASE2 + "2010/WP4ce483c6efa9d" + EXT, }; private Data() { // No instances. } } 

Sorry for my English.

+5
source share
3 answers

The Picasso library is used only for downloading images from the network.

You need to address your request with another library, such as PhotoView or any other that supports image manipulation.

+7
source
 PhotoViewAttacher photoViewAttacher; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageView imageView = (ImageView) findViewById(R.id.imageView); Picasso.with(this) .load("http://easyway-ev.xyz/images/1.png") .into(imageView);//Regular photoViewAttacher = new PhotoViewAttacher(imageView);} 

this is my answer, I take Picasso, and after I used photoView, also this video as sync photoView enter the link here here Hope this helps you!

+2
source

Source: https://habr.com/ru/post/1211881/


All Articles