十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这期内容当中小编将会给大家带来有关Android中怎么利用MainUpView实现飞框选中效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
创新互联公司专注于凉山州网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供凉山州营销型网站建设,凉山州网站制作、凉山州网页设计、凉山州网站官网定制、小程序制作服务,打造凉山州网络公司原创品牌,更为您提供凉山州网站排名全网营销落地服务。1.首先可以在我们的页面根布局下添加这一控件
这里并不需要调整布局,因为飞框一般情况下我们设定为不可见的。在这里绑定了三个属性,一个是effect_bridge,一个是rect_padding,一个是up_rect_drawable.我们可以看一下这三个属性的定义。在ViewModel中我们添加如下三个成员(对于databinding的具体内容不在这里细述):
@Bindable public int rectDrawable = R.drawable.white_light_10; @Bindable public EffectNoDrawBridge bridge = new EffectNoDrawBridge(); @Bindable public Rect rectPadding = new Rect(0, 10, 0, 10);
effect_bridge是飞框对象,我们控制飞框的聚焦跟移动都是操作这一个对象,rect_padding是飞框的内边距,可以调整这个Rect对象的大小,来调整飞框离内部四个边缘的距离,我们可以根据实际的状态适当调整,而rectDrawable则是具体的飞框样式,这里推荐使用9-Patch格式的图片,这样飞框在缩放的时候不容易变形。
实际需要我们操作的是mainupview本身以及对应的bridge对象。
MainUpView mainUpView = (MainUpView) mainView.findViewById(R.id.mainUpView); OpenEffectBridge bridge = (OpenEffectBridge) mainUpView.getEffectBridge();
在首页中,我们可以获取mainupview对象,并通过getEffectBridge()方法获取对应的bridge。
mainUpView.setFocusView(newFocus, scale); mainUpView.setFocusView(newFocus, oldFocus, scale);
利用这两个函数,我们可以使mainUpView捕获当前获得焦点的View对象,飞框也随之移动并显示。传入的scale参数是飞框捕获view后的放大系数,用于实现放大的效果。
当然了,当屏幕上view的布局不均匀的时候,飞框效果可能比较突兀,因为可以看到一个白色的框在屏幕上闪过,如果屏幕两个控件之间的空隙较大,效果并不美观。我们可以设置飞框的动画监听,让飞框在移到目的控件后才显示。
bridge.setOnAnimatorListener(new OpenEffectBridge.NewAnimatorListener() { @Override public void onAnimationStart(OpenEffectBridge bridge, View view, Animator animation) { bridge.setVisibleWidget(true); } @Override public void onAnimationEnd(OpenEffectBridge bridge, View view, Animator animation) { if (mSaveBridge == bridge && view.hasFocus()) bridge.setVisibleWidget(false); } });
在这里,setVisibleWidget方法控制bridge是否显示,传入为true的时候隐藏。我们的操作是在动画开始的时候隐藏bridge,动画结束后再重新显示。
上述就是小编为大家分享的Android中怎么利用MainUpView实现飞框选中效果了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。