当前位置: 源码素材网 » Android教程 » 详情页

Android Toast仿微信朋友圈图片长按提示

  •   时间:2019-07-09
  • 概述:Toast 弹出提示框 图片提示

Android Toast仿微信朋友圈图片长按提示,本实例中的弹出提示,只是提示当前查看的图片是第几张,但是演示了如何实现这种图片提示,你可以扩展其功能。本程序的编写用到了Intent类中的putExtra()方法、ViewPager类中的setCurrentItem()方法,在本例中的弹出提示是基于Toast的,可以扩展为弹出提示框:

private ViewPager viewPager;  //声明viewpage
private List<View> listViews = null;  //用于获取图片资源
private int index = 0;   //获取当前点击的图片位置
private MyPagerAdapter adapter;   //ViewPager的适配器
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);  //去除标题栏
    setContentView(R.layout.show_image_layout);    //绑定布局
    inint();   //初始化
}
private void inint() {
    final Intent intent = getIntent();   //获取intent传递的信息
    viewPager = (ViewPager) findViewById(R.id.show_view_pager);  //绑定viewpager的id
    listViews = new ArrayList<View>();   //初始化list
    for (int i = 0; i < intent.getIntArrayExtra("image").length; i++) {  //for循环将试图添加到list中
        View view = LayoutInflater.from(getApplicationContext()).inflate(
                R.layout.view_pager_item, null);   //绑定viewpager的item布局文件
        ImageView iv = (ImageView) view.findViewById(R.id.view_image);   //绑定布局中的id
        iv.setBackgroundResource(intent.getIntArrayExtra("image")[i]);   //设置当前点击的图片
        listViews.add(view);
        /**
         * 图片的长按监听
         * */
        iv.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                //弹出提示,提示内容为当前的图片位置
                Toast.makeText(ShowImageActivity.this, "这是第" + (index + 1) + "图片", Toast.LENGTH_SHORT).show();
                return false;
            }
        });
    }
    adapter = new MyPagerAdapter(listViews);
    viewPager.setAdapter(adapter);
    viewPager.setOnPageChangeListener(new PageChangeListener()); //设置viewpager的改变监听
                     //截取intent获取传递的值
    viewPager.setCurrentItem(intent.getIntExtra("id", 0));    //viewpager显示指定的位置
}
/**
 * pager的滑动监听
 * */
private class PageChangeListener implements OnPageChangeListener {
    @Override
    public void onPageScrollStateChanged(int arg0) {
    }
    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {
    }
    @Override
    public void onPageSelected(int arg0) {
        index = arg0;
    }
}

本代码中还通过自定义GrideView来解决ListView嵌套GridView显示不全的问题:

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
    super.onMeasure(widthMeasureSpec, expandSpec);
}

例子中还涉及其它的一些辅助代码,请参考这里的完整源代码:Android 模拟微信朋友圈图片的长按提示功能

    相关声明:

      若“Android Toast仿微信朋友圈图片长按提示”有损您的权益,请告之我们删除内容。
      部分文章来源于网络,版权归原作者所有。