![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AndroidUI细节
YaoHHH
只会Google的Android开发小白,已放弃了,现在在银行搬砖。
展开
-
Android Dialog/AlertDialog 无法横向铺满屏幕
在Android 5.0以上 自定义Dialog时发现无法横向铺满屏幕 分析解决办法: 查找父类Dialog的style和theme,发现background背景属性: 到源码一查看 一张.9图片 so 是因为背景的.9图四周 边距太宽的原因,和宽度设置无关。其实是填满了的,只是四周是透明的而已。接下来说说解决办法: 方法一:自定义style,继承Theme.Dialo...转载 2018-12-12 15:30:07 · 2409 阅读 · 0 评论 -
AlertDialog控件设置宽高大小(草稿)
简单方法: alertDialog.getWindow().setLayout(600, 400); //Controlling width and height. 常规方法 WindowManager.LayoutParams lp = new WindowManager.LayoutParams();lp.copyFrom(alertDialog.getWindow()....原创 2018-12-12 10:20:18 · 2141 阅读 · 0 评论 -
Android 屏幕dp、dpi、px、ppi、density的区别
Android屏幕中dp、dpi、px、ppi的区别 px:像素ppi:指每英寸所拥有的像素数量dpi:指每英寸所拥有的点的数量(点的大小不一定是像素大小,但在考虑屏幕的时候dpi=ppi)dp:密度独立像素density:屏幕密度,density和dpi的关系为 density = dpi/160sp:安卓的字体大小单位首先得清楚在考虑屏幕的时候dpi=ppi...原创 2018-10-25 22:12:17 · 3010 阅读 · 0 评论 -
Android一个根据手机屏幕将dp转px的小方法(草稿)
dp转px(根据当前手机的屏幕密度density) //该方法用于dp To pxpublic static int dpToPx(Context context ,int dp) { float density; density = context.getResources() .getDisplayMetrics() ...原创 2018-12-12 10:54:08 · 941 阅读 · 0 评论 -
Android studio模拟器尺寸和真机不一样的原因
平时喜欢直接用Android studio自带的模拟器Nexus 5X进行调试 发现UI界面效果和真机测试出来的界面不一样 我真机用的是华为P10 plus,dp尺寸是360*640的模拟器分辨率为1080*1920px按理来说也是360*640dp的尺寸,结果发现这个模拟器的宽度竟然是400dp,高度为600dp比正常的360dp多出了40dp,比640dp少了40dp,...原创 2018-11-27 11:53:33 · 9471 阅读 · 1 评论 -
Android获取屏幕宽高,状态栏宽高,actionbar宽高,layout宽高,导航栏高度的方法汇总
看这个博客你可以知道获取屏幕宽高,状态栏宽高,actionbar宽高,layout宽高,导航栏(虚拟按键栏)高度的方法 目录顺序为代码测试的机型状态栏高度actionbar高度屏幕高度导航栏(虚拟按键栏)高度layout宽高总结 代码测试的机型:小米8青春版这里我们用的是小米8青春版手机测试(刘海屏)小米8青春版屏幕px为1080*2280,...原创 2018-12-12 12:05:00 · 3050 阅读 · 0 评论 -
Android 列表RecyclerView不同item的实现
像这个订单列表,订单处在不同状态下的列表item布局不一样 实现方法1.在一个item布局中写多个控件,再根据不同订单情况,通过代码的逻辑来隐藏相对应的控件控件的可见,不可见,隐藏请看我的下面这篇博客https://blog.csdn.net/yh18668197127/article/details/848401232.分别写多套布局,用RecyclerView加载多...原创 2018-12-24 11:16:24 · 3439 阅读 · 0 评论 -
Android EditText.clearFocus()无效原因
最近在写EditText的时候发现EditText.clearFocus()无效第一个EditText设置clearFocus()之后还是能取得焦点 原因:查看源码发现clearFocus()执行之后有会按照先序遍历查找一个设置了focusInTouchMode(true)的view设置焦点,如果你的EditText是布局中的第一个拥有focusInTouchMode(true...原创 2019-01-05 17:17:35 · 3087 阅读 · 0 评论 -
EditText 细节
EditText限制输入字符,限制输入长度在XML中设置:android:maxLength="1"android:digits="0123456789"EditText取消下划线android:background="@null"EditText设置点击获取焦点时开启数字软键盘 在XML中设置:android:inputType="number" ...原创 2019-01-07 11:11:48 · 135 阅读 · 0 评论 -
Android Material Design控件
目录Toolbar标题栏,取代之前的ActionBarDrawerLayout侧滑菜单控件NavigationView侧滑菜单导航页FloatingActionButton悬浮按钮SnackBar底部提示栏CoordinatorLayout一个加强版的FrameLayoutCardView卡片式布局,支持圆角和高度阴影AppBarLayout一个可以监听滚动事件的布...原创 2019-01-23 19:21:03 · 1062 阅读 · 0 评论 -
Android UI控件介绍
这里介绍官方提供的 Common:TextView文本Button按钮ImageView图片RecyclerView列表Fragment碎片ScrollView可滑动View容器Switch开关按钮Buttons:ImageButton图片按钮CheckBox复选框(方形)RadioGroup+RadioButton单选框(圆形)Toggle...原创 2019-01-14 13:25:33 · 804 阅读 · 0 评论 -
Android View的滑动
View的滑动有三种操作:1.view本身提供的scrollBy,scrollTo方法2.动画添加平移效果3.改变View的LayoutParams 第一种:使用scrollBy和scrollToscrollBy基于当前位置相对滑动,scrollTo绝对滑动(scrollBy实际也是调用scrollTo)原理是改变View中的两个属性:mScrollX,mScrollY...原创 2019-01-28 11:19:48 · 162 阅读 · 0 评论 -
android Viewpager+TabLayout+Fragment
Viewpager+TabLayout+Fragment TabLayout滑动的时候viewpager换页Viewpager换页的时候TabLayout滑动Viewpager的适配器装的是Fragment 1.Viewpager弄个适配器extends FragmentPagerAdapter适配器里面成员变量:一个title字符串集合,一...原创 2018-12-21 14:31:51 · 365 阅读 · 0 评论 -
Android 横屏禁止Activity重新创建
AndroidManifest.xml设置activity标签中的android:configChanges属性 横屏禁止Activity重新创建android:configChanges="orientation" Android Studio官方说明:android:configChanges列出 Activity 将自行处理的配置更改。在运行时发生配置更改时,默认...原创 2018-12-20 14:14:11 · 1149 阅读 · 0 评论 -
Android AlertDialog大小和位置的设置,取得内部控件实例
初始化AlertDialogAlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);builder.setView(R.layout.dialog_item01);AlertDialog dialog=builder.create(); 设置AlertDialog显示的位置,这里x为从左到右,y为从...原创 2018-12-12 16:29:53 · 8601 阅读 · 0 评论 -
Android Button点击阴影效果失效
查询网上的技术博客知道了原因,记录一下,备忘1. 控件必须设置背景色,且不能为透明。2. 阴影是绘制于父控件上的,所以控件与父控件的边界之间需有足够空间绘制出阴影才行。 自己没有代码测试过,先记下来再说...原创 2018-12-13 11:07:02 · 1210 阅读 · 0 评论 -
Android dialog和popupwiondow的区别和用法
其中最本质的差别就是:AlertDialog是非阻塞式对话框:AlertDialog弹出时,后台还可以做事情;而PopupWindow是阻塞式对话框:PopupWindow弹出时,程序会等待,在PopupWindow退出前,程序一直等待,只有当我们调用了dismiss方法的后,PopupWindow退出,程序才会向下执行。这两种区别的表现是:AlertDialog弹出时,背景是黑色的,但是当我们点...原创 2018-12-13 11:45:39 · 3921 阅读 · 0 评论 -
PopupWindow 设置点击外部区域不消失
PopupWindow默认点击弹框外部区域dismiss 想要设置点击外部区域不消失需要设置底下三个方法popupWindow.setOutsideTouchable(false);popupWindow.setFocusable(false);popupWindow.setTouchable(true); 完整代码//创建PopupWindow popupWin...原创 2018-12-13 13:22:42 · 4644 阅读 · 0 评论 -
Tablayout初始全部不选中,初始默认选中一个,初始全部选中的设置
在一个项目中要实现TabLayout的初始全部Tab都不选中状态去看TabLayout的API愣是没找到设置全部不选中的属性和方法最后发现tabLayout.addTab(Tablayout.Tab tab,boolean setSelected)方法可以通过第二个参数设置Tab初始不选中状态于是我们就可以在添加Tab的时候就设置不选中状态来达到初始Tab不被选中状态 ...原创 2018-11-29 13:56:31 · 12963 阅读 · 3 评论 -
Android 控件view的可见,不可见,隐藏的设置和区别
可见(visible)XML文件:android:visibility="visible"Java代码:view.setVisibility(View.VISIBLE); 不可见(invisible)XML文件:android:visibility="invisible"Java代码:view.setVisibility(View.INVISIBLE); 隐藏(GO...原创 2018-12-05 17:48:37 · 15170 阅读 · 0 评论 -
Android Button设置圆角和边框和渐变
drawable右键新建Drawable resource file 设置圆角和边框<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"&原创 2018-12-06 10:29:12 · 3471 阅读 · 0 评论 -
Android 手机屏幕适配
1.能用dp的地方就用dp不能用dp的地方根据不同手机的屏幕密度和固定的dp换算得到相对应px 2.能用wrap_content,match_parent的地方尽量用这两个,效果比dp更好3.使用约束布局并且合理的利用约束和偏移比例能解决绝大部分屏幕适配问题4.准备多套图片:根据不同屏幕密度准备多套分辨率的图片(正常来说要准备6套图片,或者准备2套:一套高分辨率的,一套主流分辨...原创 2018-12-19 18:06:23 · 380 阅读 · 1 评论 -
Android布局参数概念
1.padding和margin前者是内边距,后者是外边距 2.bitmap位图是Drawable的一种,Drawable是Android处理图像通用的类 3.Top:子View左上角距父View顶部的距离; Left:子View左上角距父View左侧的距离; Bottom:子View右下角距父View顶部的距离 Right:子View右下角距父View左侧的距...原创 2018-12-14 12:06:49 · 254 阅读 · 0 评论 -
Android弹窗页面的三种实现方式
1.AlertDialog设置自定义view2.自定义Dialog控件3.PopupWindow 最简单的AlertDialog设置viewLayoutInflater inflater = LayoutInflater.from(getApplication());View view = inflater.inflate(R.layout.dialog...原创 2018-12-20 10:04:47 · 19439 阅读 · 0 评论 -
Android 设置横屏竖屏的方法
1.AndroidManifest.xml设置activity标签中的android:screenOrientation属性android Studio官方网站的说明:android:screenOrientationActivity 在设备上的显示方向。如果 Activity 是在多窗口模式下运行,系统会忽略该属性。其值可以是下列任一字符串:“unspecified” ...原创 2018-12-20 13:50:53 · 3831 阅读 · 0 评论 -
Android动画
动画分三类:View动画,Drawable动画(帧动画),属性动画(Android3.0以上) View动画系统预置的View动画,4个类型,1个容器使用 View动画可以自定义,继承Animation,在对应方法里完成相应的矩阵变换,采用Camera类简化矩阵变换过程(平时很少用到自定义View动画,知道就行)属性动画属性动画常用的有ValueAn...原创 2019-01-30 10:13:57 · 175 阅读 · 0 评论