精华内容
下载资源
问答
  • 一、该功能可以用recycleview实现,只是判断比较多 二、自定义view 1、自定义的viewgroup public class SelectImageView extends ViewGroup { int hSpace = Utils.dip2px(30);//每张图片的横向间距 int vSpace =...

    一、该功能可以用recycleview实现,只是判断比较多

    二、自定义view

    	1、自定义的viewgroup
    
    public class SelectImageView extends ViewGroup {
        int hSpace = Utils.dip2px(30);//每张图片的横向间距
        int vSpace = Utils.dip2px(30);//每张图片的纵向间距
        int childWidth = 0;//每张图片的宽度
        int childHeight = 0;//每张图片的高度
        int maxNum = 9;//最大图片数量
        int lineNum = 3;//每行的数量
    
        List<String> imageList;
        private OnClickListener itemClickListener;
    
        public SelectImageView(Context context) {
            super(context);
        }
    
        public SelectImageView(Context context, AttributeSet attrs) {
            this(context, attrs, 0);
        }
    
        public SelectImageView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
    
            TypedArray t = context.obtainStyledAttributes(attrs,
                    R.styleable.SelectImageView, 0, 0);
            hSpace = t.getDimensionPixelSize(
                    R.styleable.SelectImageView_h_space, hSpace);
            vSpace = t.getDimensionPixelSize(
                    R.styleable.SelectImageView_v_space, vSpace);
            maxNum= t.getDimensionPixelSize(
                    R.styleable.SelectImageView_max_num, maxNum);
            lineNum= t.getDimensionPixelSize(
                    R.styleable.SelectImageView_line_num, lineNum);
            t.recycle();
    
            imageList = new ArrayList<>(maxNum);
            addView(new ImageView(getContext()));
        }
    
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            int rw = MeasureSpec.getSize(widthMeasureSpec);
            int rh = MeasureSpec.getSize(heightMeasureSpec);
    
            //图片宽高一样 整个viewgroup的宽度减去横向间距的宽度 除以一行的数量 可得宽高
            childHeight = childWidth = (rw - hSpace * (lineNum - 1)) / lineNum;
    
            int childCount = this.getChildCount();
            for (int i = 0; i < childCount; i++) {
                ImageView child = (ImageView) this.getChildAt(i);
                child.setLeft((i % lineNum) * (childWidth + hSpace));//设置子view的左边间距
                child.setTop((i / lineNum) * (childWidth + vSpace));//设置子view的上边间距
            }
    
            //以下重新计算整个view的宽高
            int vw = rw;
            int vh = childHeight;
            if (childCount < lineNum) {
                vw = childCount * (childWidth + hSpace);
            }
    
            if (childCount > lineNum) {
                int line = (childCount - 1) / lineNum + 1;
                vh = line * childHeight + (line - 1) * hSpace;
            }
            setMeasuredDimension(vw, vh);
        }
    
        @Override
        protected void onLayout(boolean arg0, int arg1, int arg2, int arg3, int arg4) {
            int childCount = this.getChildCount();
            for (int i = 0; i < childCount; i++) {
                ImageView child = (ImageView) this.getChildAt(i);
                child.layout(child.getLeft(), child.getTop(), child.getLeft() + childWidth,
                        child.getTop() + childHeight);
    
                if (i == childCount - 1 && imageList.size() != maxNum) {//最后一个view 并且图片不全的时候 显示加号
                    child.setImageResource(R.drawable.add_photo);
                    child.setOnClickListener(itemClickListener);
                } else {
                    final String filePath = imageList.get(i);
                    GlideEngine.loadLocalImage(child, filePath);
                    child.setTransitionName("detailImg");
                    child.setScaleType(ImageView.ScaleType.FIT_XY);
                    child.setOnClickListener(view -> {//图片放大查看
                        Intent intent = new Intent(getContext(), ImageDetailActivity.class);
                        ActivityOptionsCompat options = ActivityOptionsCompat
                                .makeSceneTransitionAnimation((BaseActivity) getContext(),
                                        view, "detailImg");
                        intent.putExtra(ImageDetailActivity.IMAGE_URL, filePath);
                        getContext().startActivity(intent, options.toBundle());
                    });
                }
            }
        }
    
        public void addPhoto(List<String> filePaths) {
            if (imageList.size() + filePaths.size() <= maxNum) {
                int addNum;
                if (imageList.size() + filePaths.size() == maxNum) {//如果到了最大数量 就少加一个view  用之前加号的view显示图片
                    addNum = filePaths.size() - 1;
                } else {
                    addNum = filePaths.size();
                }
                for (int i = 0; i < addNum; i++) {
                    addView(new ImageView(getContext()));
                }
                imageList.addAll(filePaths);
                requestLayout();
                postInvalidate();
            }
        }
    
        /**
         * 设置加号的点击事件
         *
         * @param listener
         */
        public void setOnItemClickListener(OnClickListener listener) {
            itemClickListener = listener;
        }
    
        /**
         * 获取当前还能新增多少图片
         */
        public int getRemainNum() {
            return maxNum - imageList.size();
        }
    
        /**
         * 获取当前选择的图片的filepath list
         *
         * @return
         */
        public List<String> getImageList() {
            return imageList;
        }
    }
    
    
    2、自定义样式
    
    <declare-styleable name="SelectImageView">
            <attr name="h_space" format="integer"/>
            <attr name="v_space" format="integer"/>
            <attr name="max_num" format="integer"/>
            <attr name="line_num" format="integer"/>
        </declare-styleable>
    
    
    3、放大展示图片Activity
    
    public class ImageDetailActivity extends AppCompatActivity {
        public final static String IMAGE_URL = "image_url";
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_image_detail_layout);
            // 延迟共享动画的执行
            postponeEnterTransition();
            loadImage();
        }
    
        private void loadImage() {
            ImageView imageView = findViewById(R.id.iv_pic);
            String url = getIntent().getStringExtra(IMAGE_URL);
    
            GlideEngine.loadImage(imageView, url, new RequestListener() {
                @Override
                public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
                    return false;
                }
    
                @Override
                public boolean onResourceReady(Object resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) {
                    //图片加载完成的回调中,启动过渡动画
                    supportStartPostponedEnterTransition();
                    return false;
                }
            });
            imageView.setOnClickListener(view -> onBackPressed());
        }
    
        @Override
        public void onBackPressed() {
            supportFinishAfterTransition();
        }
    }
    
    4、xml
    
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <ImageView
            android:id="@+id/iv_pic"
            android:transitionName="detailImg"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
    </LinearLayout>
    
    展开全文
  • 近日,微信 for Mac 3.1.0 测试版发布,此版本新增了「发朋友圈」和「浏览朋友圈相册」的新功能。 发朋友圈 Mac 微信 3.1.0 测试版的发朋友圈方法跟手机类似:打开朋友圈,点击右上角的相机图标,即可发表带图片...

    今年 3 月份,微信 for Mac 3.0 发布,上线了「朋友圈」功能,但当时还只能「刷朋友圈」,而不能「发朋友圈」。

    近日,微信 for Mac 3.1.0 测试版发布,此版本新增了「发朋友圈」和「浏览朋友圈相册」的新功能。

    发朋友圈

    Mac 微信 3.1.0 测试版的发朋友圈方法跟手机类似:打开朋友圈,点击右上角的相机图标,即可发表带图片或视频的朋友圈,长按相机图标则是发表文字朋友圈。

    也可以在相机图标上单击右键,选择「选视频或照片」或「发表文字」;

    浏览朋友圈相册

    在聊天列表好友头像上单击右键,点击「查看详细资料」,即可查看该好友的朋友圈。

    目前,微信 for Mac 3.1.0 正在内测中,正式发布时间未知。测试版只有受邀请的用户才能登录使用。

    小编带来微信 for Mac 3.1.0 测试版。(https://mac.orsoon.com/Mac/163758.html)

    展开全文
  • 电脑版没手机版的功能丰富,主要就是支持在线聊天、视频通话、看一看、小程序、视频号直播等功能,就连朋友圈这个功能都没有,但是呢,如今在微信3.3.0版本中可是直接为大家添加了浏览朋友圈功能,同时还支持对朋友...

    一直以来微信都被大家广泛的使用着,而今日小编要介绍的是微信3.3.0内测版,这是一款知名度极高的社交聊天软件,并且该版本是由腾讯于近期官方推出的一个最新的电脑内测版本,相信在电脑中安装使用过微信的小伙伴们都知道,电脑版没手机版的功能丰富,主要就是支持在线聊天、视频通话、看一看、小程序、视频号直播等功能,就连朋友圈这个功能都没有,但是呢,如今在微信3.3.0版本中可是直接为大家添加了浏览朋友圈功能,同时还支持对朋友圈内容进行点赞、评论、收藏等操作,十分强大哦。除此之外呢,在3.3.0版本中还允许用户浏览聊天中分享的视频号视频和视频号直播以及搜一搜功能,并解决了一些已知问题,致力为大家带来更好的使用体验感,十分值得一试。
    微信3.3.0版本

    微信3.3.0版本安装教程

    1、下载并进行解压即可获得微信3.3.0内测版安装包和面资格补丁;

    2、双击“WeChat3.3.0_setup16_C1000.exe”开始依提示进行安装;

    3、选好安装路径后安装微信(一般直接覆盖原微信安装)

    4、耐心等待安装;

    5、安装完成后即可运行;

    6、这时会发现无权限;

    7、那么首先关闭正在运行的电脑微信;

    8、本程序放入微信安装目录下运行,一般位置是在(*:\Program Files (x86)\Ten-cent\We-Chat),用户要根据自己的安装来进行找目录;
    注意:本程序仅适合微信3.3.0.16内测版

    5、然后在微信目录下运行微信3.3.0内测资格补丁点击运行即可;

    6、最后补丁现在完成即可免申请登录微信内测版开始刷朋友圈啦;

    7、另外还提供了搜一搜功能哦。

    微信3.3.0版本新功能

    1、可以浏览朋友圈;
    2、在搜一搜新增了搜索公众号、小程序、表情、视频、文章等内容;
    3、修复了一些已知问题。

    展开全文
  • 新增功能

    2020-12-09 05:08:50
    <div><p>可以新增点击图片关闭以及长按事件监听这两个功能吗,类似微信朋友圈浏览图片的效果。另外在Fragment中怎么实现最好</p><p>该提问来源于开源项目:bauer-bao/DragCloseHelper</p></div>
  • 新浪科技讯 2月20日晚间消息,近日,有传言称微信朋友圈将增加访客记录功能,对此,微信相关人士向新浪科技透露:假的,这个是p的图。 2018年年底,微信曾进行了一次大改版,不仅新增了时刻视频和公众号“好看”按钮...

    新浪科技讯 2月20日晚间消息,近日,有传言称微信朋友圈将增加访客记录功能,对此,微信相关人士向新浪科技透露:假的,这个是p的图。

    2018年年底,微信曾进行了一次大改版,不仅新增了时刻视频和公众号“好看”按钮,而且页面UI也趋向扁平化。此次改版被大量微信用户吐槽,称界面难看、功能鸡肋等。

    如今,“朋友圈增加访客记录功能”的传言再次引起网友的关注,在微博上,#假如朋友圈有访客记录#的话题的阅读量已达2.5亿,2.6万人参与讨论。

    网友 @金明哥哥 称, 如果朋友圈也有访问记录的话,大概是再也不能偷偷喜欢一个人了吧。

    网友@于陌尘中听佛音 表示,假如朋友圈有访客记录,那就考虑卸载微信了。

    @ACCA使我热爱xio习 调侃称,请马化腾让我充钱成为会员,然后隐身访问。

    还有网友表示,假如朋友圈有访客记录,仿佛回到手机qq空间,那未来朋友圈消失也快了。

    如果微信增加访客记录功能,你会怎么样?

    320X320.png
    展开全文
  • 上线4年,小程序终于开放分享到朋友圈功能,接入微信最大开放流量池,小程序将新增一个重要的流量入口来源! 最近有部分网友透露,小程序的部分开发者收到了分享到朋友圈内测邀请,只要将相关的代码文档加入到自己的...
  • 给你一个朋友圈点赞的功能,写出测试用例 【UI】①、点击操作栏,是否正常弹出气泡,是否正常收回、是否流畅②、样式是否与需求保持一致③、未赞时,点击【点赞】,样式变为已赞④、已赞时,点击【取消】,样式...
  • 相比之前不痛不痒的功能,这次的更新十分「有料」,不仅适配了深色模式,还增加了最为关键的朋友圈浏览功能。接下来就跟小编共同体验一番吧。 微信Mac版客户端(支持查看朋友圈)v3.0.0支持Silicon M1 目录 1...
  • 微信小程序开发新增5大功能

    千次阅读 2017-01-09 11:13:14
    微信小程序在12月21日发布了新版本的开发工具,并在官网公布新增分享、模板消息、客服消息、...注意是分享给好友或群聊,并没有分享到朋友圈。一方面微信在尝试流量分发方式,但同时又不愿意开放最大的流量入口。 开
  • 网友分享的朋友圈社区程序源码网友分享的朋友圈社区程序源码网友分享的朋友圈社区程序源码 基于thinkphp5.1+uniapp+mysql5.7 开发的社区程序,主要兼容H5版本。 图片压缩使用的七牛云存储。 后台管理系统并未完善,...
  • 测试面试题:测试微信朋友圈

    千次阅读 2018-05-11 17:25:50
    S表示,struture代表结构,微信朋友圈的代码组成,客户端是怎么样的,服务器端是怎么样的F表示function,代表功能,考虑单个功能是否符合预期,比如显示一条别人发的朋友圈,又比如显示自己发的一条朋友圈D表示date...
  • 苹果系统电脑微信macOS版3.0.0正式版,早在今年3月份左右就已经新增了微信朋友圈功能,Windows系统用户近期终于等来了PC版微信v3.3版本,这次微信更新新增了PC版朋友圈功能,还包括点赞、评论、收藏、转发等基础功能...
  • 暴风微赚微信朋友圈分享文章源码登录界面: 暴风微赚微信朋友圈分享文章源码前台界面:  暴风微赚微信朋友圈分享文章源码后台管理 后台地址:域名/admin/login.php,请及时修改目录 默认帐号和密码是admin...
  • 功能说明 管理后台,可以无限制帮用户开户,也可以理解为多用户版。 可以管理用户发布文章条数,也可以无限制发布。 前端用户,用户可以上传多个广告,每个广告分别进行统计展示及点击。 用户一键植入,不用粘贴网址...
  • 2018最新朋友圈广告植入,完全开源, 功能说明 管理后台,可以无限制帮用户开户,也可以理解为多用户版。 可以管理用户发布文章条数,也可以无限制发布。 前端用户,用户可以上传多个广告,每个广告分别进行统计展示...
  • 朋友圈社区程序源码 基于thinkphp5.1+uniapp+mysql5.7开发 基于thinkphp5.1+uniapp+mysql5.7 开发的社区程序,主要兼容H5版本。图片压缩使用的七牛云存储。后台管理系统并未完善,后期有时间完善或自行完善学了一点...
  • 小程序分享朋友圈以前只能长按识别,就如微信跳转淘宝一样,之前一直是体验上的痛点,淘宝跳转可行性很低,但今日,微信官方文档2.11.3中,新增了小程序分享到朋友圈功能,让小程序圈整个都沸腾了,小程序即将迎来...
  • 喜大普奔!朋友圈终于能评论表情包了!12月23日,微信iOS版7.0.9正式版迎来更新,支持发消息时可以引用之前的内容。此外,新版本还新增朋友圈自定义表情评论功能,可以用表情评论别人的朋...
  • 注意是分享给好友或群聊,并没有分享到朋友圈。一方面微信在尝试流量分发方式,但同时又不愿意开放最大的流量入口。 开发文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/share.html?t=20161221 示例代码: ...
  • 多用户朋友圈分享内容管理系统是一套适合个人站长或企业的微信推广营销系统,结合多年来的推广系统研发经验,我们精心打造功能强大、性能卓越的多用户文章分享系统;它利用了当今众多手机端、微信端客户群体众多潮流...
  • 朋友圈的应用的实现 1.使用spring+springmvc+mybati搭建一个web框架 2.实现用户注册、登录功能。 3.实现web发布状态的功能,仅能实现但前用户的状态list。 4.发布新增好友功能。 5.实现上传图片,视屏功能。 6.增加...
  • 大家好,我是Kuls。这次微信放大招了,电脑端新增了两个重量级功能朋友圈看视频号除此之外,还有一些例如皮肤的更换(黑暗模式)等细节。但是本次只是更新了Mac端的微信,PC端的估计不久就会...
  • 23号360云盘官微发布消息称... ( ⊙o⊙ )哇,居然更新到6.x尝鲜版,朋友圈新增“点赞”和“评论”,新增“附近的人”功能,让你结识同城的TA  说好的创新呢?难道这就是?微信团队的人呢?你们知道这个情况吗?...
  • 当前环境下,大家都非常需要分享到朋友圈这个功能,但是实现起来各有心酸(坑比较多),所以才有了如下的canvas绘图工具。 具有如下特性: 简单易用 —— 一个json搞定绘制图片 功能全 —— 满足...
  • 社交与社交之间是封闭的 4、微信进程: 动作:2011年模仿韩国的“kakaotalk”语音消息功能、模拟真实世界的“附近的人”功能、使用GPS定位和加速感应器的“摇一摇”功能。 结果:在2011年11月,微信新用户增长...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 190
精华内容 76
关键字:

朋友圈新增功能