首页 文章 精选 留言 我的

精选列表

搜索[幻灯片视图],共8812篇文章
优秀的个人博客,低调大师

Android开发 - 掌握ConstraintLayout(十)按比例设置视图大小

有时候在布局界面的时候,UI要求某个View或者某张图片按比例显示,以适应不同的屏幕分辨率。 通常我们时通过自定义View或者引入第三方的库来解决。现在我们既然已经使用了ConstraintLayout,它本身就支持这样的按比例设置View大小的功能。 下面我们来介绍如何使用: 首先我们在布局中添加一个View: 此时,没有添加任何约束,显示的比例就是原始图片的比例。 添加水平方向的约束: 添加完水平方向的约束后,注意此时默认的宽高为wrap_content。 将高度设置为match_constraint 如上图:这里我们将高度设置为match_constraint,然后发现下面出现了一个三角,这个就是设置View比例的地方。 设置View比例 下面我们点击这个三角形,并设置宽高的比例: 1:1 1:2 这里设置的是宽度:高度的比例,我们查看源码可以看到这个属性: 此时我们改变View的宽度,就会发现其高度也会保持这个比例而相应地变化了: 总结 本文我们是以宽度:高度进行View比例的设置,当然我们也可以以高度:宽度进行设置,道理都是一样的。 设置View的比例也是ConstraintLayout相对于传统的布局容器一个强大的功能,它使得布局更加灵活,更加容易得进行屏幕适配。 下一篇:Android开发 - 掌握ConstraintLayout(十一)复杂动画!如此简单!,我们将介绍使用ConstraintLayout创建复杂动画。 如有更多疑问,请参考我的其它Android相关博客:我的博客地址

优秀的个人博客,低调大师

使用WindowManager添加您自己的自定义视图

在写手机卫士的时候,用户拨打|接听电话须要显示号码归属地,然后出现了一些异常,在此留下记号。希望对麻友们有帮助: BUG教程 在使用 view = View.inflate(this, R.layout.ui_toast, null);获得View对象后wm.addView出现错误: 10-1214:29:06.166:E/AndroidRuntime(1268):Causedby:android.view.WindowManager$BadTokenException:Unabletoaddwindowandroid.view.ViewRootImpl$W@41087ed8--permissiondeniedforthiswindowtype 解决的方法: 使用另外的方法获取: LayoutInflaterinflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); mDesktopLayout=inflater.inflate(R.layout.volume_panel,null); 完整代码: LayoutInflaterinflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); mDesktopLayout=inflater.inflate(R.layout.volume_panel,null); //取得系统窗口 mWindowManager=(WindowManager)getApplicationContext().getSystemService(WINDOW_SERVICE); //窗口的布局样式 mLayoutParams=newWindowManager.LayoutParams(); //设置窗口显示类型――TYPE_SYSTEM_ALERT(系统提示) mLayoutParams.type=WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; //设置窗口焦点及触摸: //FLAG_NOT_FOCUSABLE(不能获得按键输入焦点) mLayoutParams.flags=WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; //设置显示的模式 mLayoutParams.format=PixelFormat.RGBA_8888; //设置对齐的方法 mLayoutParams.gravity=Gravity.TOP|Gravity.LEFT; //设置窗口宽度和高度 mLayoutParams.width=WindowManager.LayoutParams.WRAP_CONTENT; mLayoutParams.height=WindowManager.LayoutParams.WRAP_CONTENT; //设置窗口显示的位置。否则在屏幕中心显示 mLayoutParams.x=50; mLayoutParams.y=50; mWindowManager.addView(mDesktopLayout,mLayoutParams); 问题总结 这两种方式显示出来的窗体都不会激发当前Activity的onPause()事件。据说还能够先一个窗体风格的Activity。只是显示时会激发当前窗体的onPause()事件。详细咋样没试过。 推荐风格 <?xmlversion="1.0"encoding="utf-8"? ><resources> <style name="selectorDialog" parent="@Android:style/Theme.Dialog"> <itemname="android:windowFrame">@null</item><!--边框--> <itemname="android:windowIsFloating">true</item><!--是否浮如今activity之上--> <itemname="android:windowIsTranslucent">false</item><!--半透明--> <itemname="android:windowNoTitle">true</item><!--无标题--> <!--<itemname="android:windowBackground">@drawable/selector_dialog_bg</item>背景透明--> <itemname="android:backgroundDimEnabled">false</item><!--模糊--> <itemname="android:backgroundDimAmount">0.6</item> </style></resources> OK,谢谢关注破晓博客 版权声明:本文博客原创文章。博客,未经同意,不得转载。 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4734812.html,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册