java - 如何在 Picasso 库中实现 Pinch Zoom?

标签 java android picasso

我在当前项目中使用 Picasso 库 http://square.github.io/picasso/ .一切正常,但我只是不知道如何为从 URL 加载的所有图像实现捏合缩放。老实说,我什至不知道将 onClickListener 放在哪里。 我的应用程序有几个 fragment ,每个 fragment 都有 2 个 Tab,第一个 Tab 有一个 ListView,第二个 tabGridView 中显示了一些图片:

宝马.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;
    }

示例 GridView 适配器

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;
    }
}

数据.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.
    }
}

对不起我的英语。

最佳答案

Picasso 库仅用于从网络加载图像。

您需要通过其他图书馆解决您的请求,例如 PhotoView或任何其他支持图像操作的。

关于java - 如何在 Picasso 库中实现 Pinch Zoom?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28139005/

相关文章:

java - 如何在执行此 f :event listener 之前设置 bean 属性

java - 尝试访问 ActionBar 时出现空指针异常

android - strings.xml 中的百分比符号

android - Android 中的持久/离线图像缓存

java - 杀死应用程序 Picasso 在 android 中的应用程序中随处重新加载图像

java - 如何在Jshell中导入另一个脚本文件

java - 在java中将按位运算符分配给变量

android - 将图像叠加到相机预览 SurfaceView 上以及如何保存它们?

java - 带 ListView 的 Viewpager

java - 在 picasso 中使用目标获取位图