精华内容
下载资源
问答
  • XBanner(一屏多显)
    千次阅读
    2019-01-03 14:42:04

    1.布局

     <RelativeLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
                //必写
            android:clipChildren="false"
            android:layout_height="wrap_content">
    
    <com.stx.xhb.xbanner.XBanner
        android:id="@+id/banner"
        android:layout_width="@dimen/dp_300"
        android:layout_height="@dimen/dp_200"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="@dimen/dp_10"
        android:layout_gravity="center"
            //必写
        app:isClipChildrenMode="true"
    
    
        />
        </RelativeLayout>

     

    2.在大Model下:

    allprojects {
        repositories {
            google()
            jcenter()
            maven { url 'https://jitpack.io' }
        }
    }

    3.依赖

       //XBanner
        implementation 'com.github.bumptech.glide:glide:4.8.0'
        implementation 'com.github.xiaohaibin:XBanner:1.6.1'

    4.主页面

       //网络接口
          iPrenserlpl.getData(Api.sell,HomeBean.class);
    
    
    //判断
      else  if(data instanceof XBannerBean)
            {
                 XBannerBean banner1= (XBannerBean) data;
                xBanner.setData(banner1.getResult(),null);
               xBanner.loadImage(new XBanner.XBannerAdapter() {
                   @Override
                   public void loadBanner(XBanner banner, Object model, View view, int position) {
                       XBannerBean.ResultBean bean= (XBannerBean.ResultBean) model;
                       Glide.with(getActivity()).load(bean.getImageUrl()).into((ImageView) view);
                       banner.setPageChangeDuration(1000);
                   }
               });

     

    更多相关内容
  • 多屏显示功能

    2015-06-18 17:17:03
    多屏显示功能实例代码,带注释,我写篇专门来解释,其中有这
  • Unity Android Studio 之 简单实现 Unity 在 Android 端的多屏功能(附实现步骤)的参考的工程文件 该博文地址:https://blog.csdn.net/u014361280/article/details/115550594
  • 前言 以前在使用viewpager的时候都是结合fragment和tablayout使用,也会当做banner来使用,但这些都是一些基本使用,很少涉及到...相信很童鞋开始接触的时候都有跟我一样的想法,但其实不然,只要你接着读下去...

    前言
    以前在使用viewpager的时候都是结合fragment和tablayout使用,也会当做banner来使用,但这些都是一些基本使用,很少涉及到动效或者其他。不过前段时间项目中有个需求是顶部一个轮播图,但是这个轮播图要在当前页能看到前后两页的部分内容,咋一看,jing到我了,这咋整,好像有点迷,一下子感觉好难啊。相信很多童鞋一开始接触的时候都有跟我一样的想法,但其实不然,只要你接着读下去就会发现,我丢,什么玩意儿,这么简单的吗?嘻嘻!

    无图无真相,小二,上图:
    效果演示图
    这里写图片描述
    接下来具体介绍咋个实现
    1.首先我们要了解一个属性:android:clipChildren;这个属性表示是否限制子View在其范围内,默认是true,即限制子View在其范围内,所以很明显,当前页要显示前后两页的内容,就要在XML文件中将其父布局的这个属性值设置为false,当然也可以在代码中设置:setClipChildren(false)。

    2.通过设置 ViewPager 的 layout_marginLeft 和 layout_marginLeft 两个属性以及通过setPageMargin(int marginPixls)方法,可以设置其他页面(非当前页面)的显示大小,setPageMargin(int marginPixls)方法的作用是设置两个page的间距。

    需要注意:
    setClipChildren(false)在3.0以上版本,开启了硬件加速后将不能正常生效,需要将其父布局设置成软件加速。设置软件加速的方法是setLayerType(View.LAYER_TYPE_SOFTWARE, null); 也可以在布局文件中添加 android:layerType=“software”。

    好啦!要实现viewpager一屏多页的效果就只需上面几小步咯,噫~~ 怎么bb了这么久都没有一行代码的呢?各位看客们骚安勿躁,马上呈现完整代码,走起:

    XML布局文件:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:clipChildren="false"
        android:layerType="software"
        tools:context="com.example.administrator.myapplication.MainActivity">
    
        <android.support.v4.view.ViewPager
            android:id="@+id/vp"
            android:layout_width="match_parent"
            android:layout_marginLeft="40dp"
            android:layout_marginTop="30dp"
            android:layout_marginRight="40dp"
            android:layout_height="240dp"></android.support.v4.view.ViewPager>
    </LinearLayout>
    

    Activity中代码:

    package com.example.administrator.myapplication;
    
    import android.support.v4.view.ViewPager;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class MainActivity extends AppCompatActivity {
    
        private ViewPager mVp;
        private int[] imgs = new int[]{
                R.drawable.p1,
                R.drawable.p2,
                R.drawable.p3,
                R.drawable.p4
        };
        private VpAdapter mVpAdapter;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mVp = ((ViewPager) findViewById(R.id.vp));
            initData();
        }
    
        private void initData() {
            mVpAdapter = new VpAdapter(imgs, this);
            mVp.setAdapter(mVpAdapter);
            mVp.setOffscreenPageLimit(3);
            mVp.setPageTransformer(true,new CustomTransferm());
            mVp.setPageMargin(DensityUtils.dp2px(this,20f));
        }
    }
    
    

    结语:
    OK,看完是不是觉得很简单的啦!大佬们如果觉着满意的话请不要吝啬你们手中的赞(嚯嚯~)。关于上面第二张图的动效实现问题,想要了解的小伙伴们可以关注我的博客(Dreamer__YY的博客主页),后续我会给大家带来关于viewpager的其他更多的知识点哟。

    展开全文
  • 一机多屏显示技术解决方案

    千次阅读 2021-07-27 04:32:14
    原标题: 一机多屏显示技术解决方案一机多屏显示技术解决方案传统的一机多屏显示解决方案常见于金融行业,特别是股票行业,听上去是不是觉我们日常肯定接触不到。但是随着时代的发展,我们现在的会议室一般都是【...

    原标题: 一机多屏显示技术解决方案

    一机多屏显示技术解决方案

    传统的一机多屏显示解决方案常见于金融行业,特别是股票行业,听上去是不是觉我们日常肯定接触不到。但是随着时代的发展,我们现在的会议室一般都是【一主两副】3个显示屏幕;另外出门在外,我们常常可以看到有商家利用多屏技术来展示其产品广告视频;在电影院门口,也能看到N多屏幕演示的片花……

    c851ffae93c23ac439b41ae549b35fa2.png一机多屏显示技术解决方案

    电脑一机多屏显示解决方案

    AWIND奇机成立于2003年,一直专注于“商教领域”的无线多屏显示,经过不懈努力,奇机在电脑一机多屏有2种解决方案。

    【多屏同显方案】多屏同显方案,又叫多屏同步复制方案,就是将一台电脑的屏幕同步在多个显示屏幕上。

    【独立分屏显示方案】将一台电脑的屏幕分别投屏到多台一体机的时候,能够在不同的大屏幕上显示不一样的内容。

    675b50835c74cee282c1af3d8b4b84e7.png

    AWIND奇机【多屏同显方案】又有两种实现方式:

    第一种:组播,这个是奇机最早提出的一机多屏显示方案,有线组播和无线组播两种。通过一台无线投屏接收端连接一台显示屏幕的做法,通过网络连接,在同一个局域网内多屏幕的同步显示。(PS:有线组播效果更好哦!)

    第二种:无线投屏搭配矩阵。我们经过实际测试,将一个1080P的信号源,通过无线投屏搭配矩阵同步显示在4个显示屏幕上,仍然有720P左右的清晰度,如果用户对清晰度要求不是很高的情况下,可以采用,主要是省钱。

    【多屏同显方案】就以投屏效果来说:有线组播>无线组播>无线投屏搭配矩阵。无线投屏搭配矩阵方案虽然我们不主推,但是在低成本的情况,也能实现用户多屏同显的需求。

    AWIND奇机【独立分屏显示方案】的实现模式是有线组播的进阶

    b51d1020e3c3862cc501e85d53e8c63c.gif一机多屏显示技术解决方案

    独立分屏显示方案是在【多屏同显方案】中,有线组播的基础上配上多屏互动服务器。目前AWIND奇机【独立分屏显示方案】只支持台式Windows系统电脑,通过【独立分屏显示方案】,我们可以轻松将一台电脑的屏幕无线投屏到11台显示屏幕上,能够在不同的大屏幕上显示不一样的内容。

    随着无线投屏技术的发展,让电脑一机多屏摆脱了线缆的限制,未来一机多屏显示不仅仅会出现在我们的办公室,商场,甚至会出现在我们家中,试想一下,一个屏幕看PS教程,一个屏幕用来学PS,菜鸟教程会不会很香?或者玩游戏多开,再也不需要切换来切换去了,直接多屏显示。返回搜狐,查看更多

    责任编辑:

    展开全文
  • ViewPager一屏显示多个页面

    千次阅读 2017-10-10 23:00:40
    但它如何能一屏显示多个页面呢?其实很简单就是在控件的父布局或根布局添加clipChildren=false属性即可。android:clipChildren属性:是否限制子控件在其范围内显示,也就是说当子控件超出父控件规定大小时,超出部分...

    使用ViewPager一般我们只需要一屏只显示一个页面,例如引导页、轮播图等。但它如何能一屏显示多个页面呢?其实很简单就是在控件的父布局或根布局添加clipChildren=false属性即可。

    android:clipChildren属性:是否限制子控件在其范围内显示,也就是说当子控件超出父控件规定大小时,超出部分是否显示,clipChildren默认值为true。 也就是不允许超出绘制

    效果图

    这里写图片描述

    示例代码

    1:布局文件

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/white"
        android:gravity="center">
    
        <RelativeLayout
            android:id="@+id/root"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/white"
            android:clipChildren="false"
            android:gravity="center">
    
            <com.cn.lyz.viewpagegallery.viewpage_all_response.ViewPagerAllResponse
                android:id="@+id/vp"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_centerHorizontal="true"
                android:clipChildren="false"/>
    
        </RelativeLayout>
    
    </RelativeLayout>

    2:设置切换动画

    public class ZoomOutPageTransformer implements ViewPager.PageTransformer {
        public static final float MIN_SCALE = 0.8f;//原图片缩小0.8倍
        private static final float MIN_ALPHA = 0.6f;//透明度
    
        public void transformPage(View page, float position) {
            if (position < -1) {//[-Infinity,-1)左边显示出半个的page
                page.setAlpha(MIN_ALPHA);//设置page的透明度
                page.setScaleX(MIN_SCALE);
                page.setScaleY(MIN_SCALE);
            } else if (position <= 1) {
                if (position < 0) {//(0,-1] 第一页向左移动
                    if (position < -0.2f)//最大缩小到0.8倍
                        position = -0.2f;
                    page.setAlpha(1f + position*2);
                    page.setScaleY(1f + position);
                    page.setScaleX(1f + position);
                } else {//[1,0] 第二页向左移动 成currentItem
                    if (position > 0.2)
                        position = 0.2f;
                    page.setAlpha(1f -position*2);
                    page.setScaleY(1f - position);
                    page.setScaleX(1f - position);
                }
            } else {//(1,+Infinity]右边显示出半个的page
                page.setAlpha(MIN_ALPHA);
                page.setScaleX(MIN_SCALE);
                page.setScaleY(MIN_SCALE);
            }
        }
    }

    postion主要分为

    1. [-Infinity,-1)
    2. [-1,1]
    3. (1,+Infinity]

    第一个对应左边显示一点的page,第二个对应中间显示的page,第三个对应右边显示一点的page。
    第一个和第三个只需要设置最小值就可以。
    第二个还需要细分为(0,-1]和[1,0]

    由第一页滑动到第二页来说:
    页1的position变化为:从0到-1
    页2的position变化为:从1到0

    由于Scale缩放倍数是0.8,所以在页面滑动时对position做了一些限制,使其不超过0.8
    由于ALPHA透明倍数是0.6,所以在[-1,1]之间需要乘以2,否则透明度过度会很突兀

    3:自定义Viewpager

    捕获viewpager的父控件的触摸事件,并传递给viewpager,用于全屏滑动

    mRoot.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    return mVp.dispatchTouchEvent(event);
                }
            });
    public class ViewPagerAllResponse extends ViewPager {
        private final static float DISTANCE = 10;//默认距离
        private float downX;
        private float downY;
        private float upX;
        private float upY;
    
        public ViewPagerAllResponse(Context context) {
            this(context, null);
        }
    
        public ViewPagerAllResponse(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        @Override
        public boolean dispatchTouchEvent(MotionEvent ev) {
            if (ev.getAction() == MotionEvent.ACTION_DOWN) {
                downX = ev.getX();
                downY = ev.getY();
            } else if (ev.getAction() == MotionEvent.ACTION_UP) {
                upX = ev.getX();
                upY = ev.getY();
                //滑动时进入
                if (Math.abs(upX - downX) > DISTANCE || Math.abs(upY - downY) > DISTANCE) {
                    return super.dispatchTouchEvent(ev);
                }
                //点击时进入
                View view = clickPageOnScreen(ev);
                if (view != null) {
                    int index = (Integer) view.getTag();
                    if (getCurrentItem() != index) {
                        setCurrentItem(index);
                        return true;
                    }
                } else {
                    return true;
                }
            }
            return super.dispatchTouchEvent(ev);
        }
    
        /**
         * 是否点击到两边的View
         * 点到View则返回该View,否则返回null
         */
        private View clickPageOnScreen(MotionEvent ev) {
            int childCount = getChildCount();
            int currentIndex = getCurrentItem();
            int[] location = new int[2];
            float x = ev.getRawX();
    
            for (int i = 0; i < childCount; i++) {
                View v = getChildAt(i);
                int position = (Integer) v.getTag();
                v.getLocationOnScreen(location);
                int minX = location[0];
                int maxX = location[0] + v.getWidth();
    
                if (position < currentIndex) {
                    //maxX-view宽度*View缩放了宽度的一半
                    maxX -= v.getWidth() * (1 - ZoomOutPageTransformer.MIN_SCALE) * 0.5;
                    minX -= v.getWidth() * (1 - ZoomOutPageTransformer.MIN_SCALE) * 0.5;
                }
    
                if ((x > minX && x < maxX)) {
                    return v;
                }
            }
            return null;
        }
    
        /**
         * 解决当手指在第1页左边空白区域上下滑动时,不让page的点击事件触发
         */
        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
            switch (ev.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    downY = ev.getY();
                    break;
                case MotionEvent.ACTION_UP:
                    upY = ev.getY();
                    if (Math.abs(upY - downY) > DISTANCE) {
                        return true;//拦截事件 传递给自己的onTouchEvent处理
                    }
                    break;
                default:
                    break;
            }
            return super.onInterceptTouchEvent(ev);
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent ev) {
            switch (ev.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    downY = ev.getY();
                    break;
                case MotionEvent.ACTION_UP:
                    upY = ev.getY();
                    if (Math.abs(upY - downY) > DISTANCE) {
                        return super.onTouchEvent(ev);//不消费事件,事件继续往上传递
                    }
                    break;
                default:
                    break;
            }
            return super.onTouchEvent(ev);
        }
    }
    1. 复写dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent方法,解决在两侧page页上下滑动时,响应点击事件,即阻止了page的点击事件触发
    2. 复写dispatchTouchEvent方法,在其clickPageOnScreen方法内判断是否为中间page的点击事件,如果是则响应点击事件,否则则只设置setCurrentItem(index)使其跳到中间

    4:Activity中设置

    ViewpagerAdapter adapter = new ViewpagerAdapter(this, mVp, list);
    mVp.setAdapter(adapter);
    //设置缓存数为展示的数目
    mVp.setOffscreenPageLimit(list.size());
    //设置切换动画
    mVp.setPageTransformer(true, new ZoomOutPageTransformer());
    //设置Page间间距
    mVp.setPageMargin(0);

    注意
    不设置setPageMargin大小两个page页也是有间距的
    间距大小=page原大小*(1-缩放倍数)/2
    如图
    这里写图片描述

    总结

    其实效果实现起来并不难,只要理解了clipChildren属性的作用,再自定义一个PageTransformer过渡动画,ViewPager的各种效果也就不难实现了。

    当然了,如果你不想用clipChildren属性,或者说使用继承PagerAdapter的方式定义布局不方便,则可以使用Viewpager添加Fragment方式来实现。效果图和上面一样就不再放了,所有实现方式再源码中都有,感兴趣可以戳源码下载。

    源码下载
    Demo下载

    展开全文
  • C#多显示屏显示程序控制

    热门讨论 2014-06-22 10:59:09
    C#多显示屏显示程序控制,搭建显示器,分屏显示程序框架,基于visual stutio2012或2010
  • 电脑怎么设置双屏或多屏显示

    千次阅读 2021-07-20 02:43:06
    电脑多屏显示,可以实现个屏幕玩游戏,另个屏幕看股票,工作娱乐两不误,特别是剪辑师职业一般都配备多屏显示,那么如何给电脑设置双屏或多屏显示,下面让小白系统教你具体操作方法吧。、硬件要求(以Win10系统...
  • 我们都知道,电脑可以多屏显示的,实现个屏幕玩游戏,另个屏幕工作,实现工作娱乐两不误。有时候个显示器需要不停的切换使用不是很方便,那么Mac系统如何实现多屏显示画面?初学者不太懂得怎么设置,网上教程...
  • 需求:多屏显示 QDesktopWidget* desktop = QApplication::desktop(); int N = desktop->screenCount(); //获取当前显示器的个数 //if(N>1) 加了{}就不能显示第二个屏幕的界面了 奇怪? //{ //如果有两个显示,...
  • WPF随笔(四)--窗口多屏显示及全屏

    千次阅读 2018-11-01 09:56:01
    当有显示设备,比如有两台显示器时,让...多屏显示的思路很简单,就是遍历当前所有硬件显示设备,然后实例化不同的窗体并分别设置其位置在不同的显示设备上。 遍历显示设备 public MainWindow(string sysName...
  • 台电脑控制个led显示屏

    千次阅读 2021-07-08 01:31:51
    台电脑我们要怎么控制显示屏呢?现在就和大家说一下几种连接方式和软件的设置。、 说明现场有三块不同大小,不同规格的显示屏 LED1、LED2、LED3(三个显示屏面积分别为 LED1:16 扫的双色 256*128 像素点,...
  • 使用Swiper.js制作一屏显示多个slider时,按照官方给出的API说明,发现不能满足自定义缩放大小,于是自己琢磨了一下,发现一个关键参数 slidesPerView,官方给出的解释是: slidesPerView: 设置slider容器能够同时...
  • 这个就不上效果图了,大家应该都能想到样子。我之后的博客会用到这种效果,想看效果的朋友可以去看一下。 ...下一篇博客是关于ViewPager在一屏显示多个子item后的滑动效果的,欢迎大家结合着看。
  • Unity实现多屏显示

    千次阅读 2020-06-11 13:49:34
    什么情况下会用到多屏 多屏软件可以做到同时兼顾个画面的需求,使交互的步骤更清晰,展示内容更全面,适用于视角的游戏或者各种包含系统控制的工业仿真,技术培训,展览等领域。 实现多屏 ...
  • 1、首先将显示器连接电脑,然后电脑会自动识别已连接的显示器。 2、设置主、副。(目的是为了方便观看,当今人们的观看习惯是从...多屏显示技术有三种模式。 A:副本模式。 B:扩展模式。 C:无缝衔接模式。 ...
  • 内容导航:Q1:同花顺多显示设置...tn=baidu 上面有Q2:同花顺中副如何显示多只股票这个好像不行吧,你可以在同花顺帮助里面看下,股票方面有什么不懂的可以问我Q...
  • - 在使用Unity的时候,可能会碰到需要双屏显示或者多屏显示的需求 - 简单来说就是需要在两个或个显示器中显示游戏画面来达到个不同的显示效果 - 那下面就来做个简单的双屏显示看一下效果吧!
  • ViewPager一屏显示多个子页面,常见的有两种形式:1、当前展示的页面右侧显示一部分下个页面的内容2、当前页面居中,左右两边分别显示上一个页面、下一个页面第。 ViewPager 一页显示多个实现代码 ViewPager 显示多...
  • VC多屏显示

    千次阅读 2016-07-26 16:19:28
    多屏显示相关API介绍 根据窗口句柄、矩形区域、点取得显示器的句柄 MonitorFromRect( lprc, MONITOR_DEFAULTTONULL ) MonitorFromPoint( pt, MONITOR_DEFAULTTONULL ) MonitorFromWindow( ...
  • 方法:在配置清单文件AndroidManifest.xml中 ...“landscape”:横屏显示(宽比高要长) “portrait”:竖屏显示(高比宽要长) “user”:用户当前首选的方向 “behind”:和该Activity以下的那个Activity的方向
  • Qt中多屏显示问题

    千次阅读 2019-12-03 15:54:47
    即需要在主显示屏显示一个窗口,在另显示屏显示个窗口。 使用QDesktopWidget QDesktopWidget* desktopWidget = QApplication::desktop(); int screenNum = desktopWidget->numScreens(); //获取当前...
  • 最近公司项目中遇到个问题,双屏异,...可是遇到个问题,就是我的两个屏幕,主屏是竖,副是横,这样子个横屏一个竖,副上所有的控件都变形了,文字压缩了。后来想了个办法解决。具体解决办法看代码。
  • C# winfrom 投屏显示窗体,可以显示在指定的屏幕,有个屏幕都可以显示 核心代码: public void FormStartScreen(int screen, Form form) { if (Screen.AllScreens.Length < screen) { ...
  • Java多屏显示

    千次阅读 2018-08-02 15:21:31
    Java实现多屏显示:不同或相同的窗口运行在不同的屏幕上。 参考:https://stackoverflow.com/questions/4627553/show-jframe-in-a-specific-screen-in-dual-monitor-configuration 代码: package application;   ...
  • LED显示屏的种类较,不同类型的显示屏用途不同,各有其优缺点,应根据需要进行正确选择。  1.全功能型显示屏和智能型显示屏  LED显示胼按工作方式来分主要有两大类,类称为全功能型显示屏,另类称为智能型...
  • 嵌入式功能显示屏的研制,马怀平,张宾,本文论述了个基于uC/OS-II嵌入式操作系统的功能点阵显示屏的研制。该显示屏可以实现电子万年历、实时温度以及文字信息的多种
  • 个ILI9341 TFT LCD 盾板,虽然有触摸,但是一直在吃灰,因为TA把UNO的端口几乎占完了,就剩下串口。 好吧,再搭上个UNO,做个串口显示点CPU使用率什么的也是可以的。 #include <Adafruit_GFX.h&...
  • qt多屏显示程序

    千次阅读 2018-12-27 09:28:20
    qt多屏显示程序 最近写个qt程序在台电脑上,两个屏幕显示程序,主屏幕用来控制,第二屏幕用来显示视频,现在将网上收集的一些资料汇总一下。 收集资料: 感谢作者分享,转载自:...
  • 室外通常每像素内有个LED。  2.分辨率  LED显示屏的像素的行列数称为LED显示屏的分辨率。  3.灰度  灰度是指像素发光的明暗变化程度,种基色的灰度一般有8~256级。若每种基色的灰度为16级,则对于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,102,635
精华内容 441,054
关键字:

一屏多显