首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓入门-第三章-安卓常用控件使用方式

控件高度 “match_parent” 让当前控件大小布局大小一样,也就是由父布局来决定当前控件大小。...1.5 ProgressBar以及控件可见性 英文组合 中文含义 android:visibility 控制文件可见性,有不可见占大小、不可见不占大小、可见等分类 setVisibility() 活动中控制可见方法...我们还可以通过代码来设置控件可见性,使用setVisibility() 方法,可以传入View.VISIBLE 、View.INVISIBLE View.GONE 这3种值。...重新运行程序,点击按钮,效果如下图所示。 ?  ...当然,当本书后面涉及一些我们前面没学过控件相关用法时,仍然会在相应章节做详细讲解。

1.8K20

Android UI布局优化之ViewStub

大家好,又见面了,是你们朋友全栈君。...inflate方法会返回待加载视图根节点 使用: 在一个activity上放置了一个按钮,点击加载懒加载视图。 Activity布局文件定义my_sub_activity.xml: <?...inflate方法,当然,也可以调用setVisibility方法(但是不建议这么做) // 只能点击一次加载视图按钮,因为inflate只能被调用一次 // 如果再次点击按钮...setVisibility(GONE); // 设置当前视图不可绘制 setWillNotDraw(true); } 初始化时候,从配置文件中取出了inflatedId待加载资源文件...} else { // 如果引用视图已经被垃圾回收器回收,则抛出异常 // 这也就是为什么setVisibility可以调用多次,但是并不推荐这样做原因

70920
您找到你想要的搜索结果了吗?
是的
没有找到

再学一次ConstraintLayout 一些新特性

平时使用ConstraintLayout,断断续续,基本都是在自己小demo里面使用.公司项目暂时还没有使用.这次公司项目需要大改,决定用上这个nice布局.减少嵌套(之前老代码,实在是嵌套得太深了...image.png 可以看到,按钮3按钮1中间margin只有20....image.png 从右侧图片可以看出,按钮2里面的内容确实是在按钮1内容右侧.但是按钮2整个来说,却是没有整个在按钮1右侧....(8); } //可见性永远为GONE public void setVisibility(int visibility) { } //没有绘画 public void draw(Canvas canvas...综上所述,觉得这个Guideline就是一个不可见且不用测量,不用绘制,那么我们就可以忽略其绘制消耗.

1.6K40

Android之ViewStub简单使用

其实ViewStub就是一个宽高都为0一个View,它默认是不可见,只有通过调用setVisibility函数或者Inflate函数才 会将其要装载目标布局给加载出来,从而达到延迟加载效果,这个要被加载布局通过...时候,会报错: 我们看一这是为什么?...我们用layout inspector来查看一: inflate前:可以看到viewstub是灰色 inflate:可以看到viewstub直接被移除了,把引用布局直接放到view树里了。...setVisibility()方法可以实现,这是为什么呢?...,使用viewstub可以实现相同显示或隐藏效果; 从上图最后一个红色框中可以发现,假设现在没有调用inflate方法,而是直接点击了show按钮;然后引用布局也可以绘制出来;这就是在写demo

57630

Android布局优化三剑客:include+merge+ViewStub

说明我们设置layoutid都是成功。不过你可能会对id这个属性有疑问:id可以直接在TextView中设置啊,为什么重写它呢?...1.2 重写根布局布局属性 除了id之外,我们还可以重写宽高、边距可见性(visibility)这些布局属性。...这样写你会发现点击“显示”按钮ViewStub里面的布局不会再显示出来,也就是说if语句里面的代码没有执行。...奇怪,我们明明写了viewStub.setVisibility(View.GONE),layout_view_stub也隐藏了,为什么ViewStub状态还是可见呢?...这样一来,在mInflatedViewRef不为空,也就是已经填充了布局情况,ViewStub中setVisibility()方法实际上是在设置内部视图可见性,而不是ViewStub本身。

3.1K51

Android自定义View之TitleBar,通用标题栏

今天小编来说一Android自定义View中自定义标题栏,因为标题栏在我们开发过程中用到特别多,可以说每一个Activity中都会有标题栏,我们不可能每个布局文件中都去写那么多代码,为了优化,我们可以定义一个通用...getApplicationContext(),"right",Toast.LENGTH_SHORT).show(); } }); 当然我们还可以设置按钮显示隐藏以及文字其他一些事件...,随便定义好了,然后在调用者地方进行调用 /** * 设置左侧按钮是否可见...来直接引用我们布局,然后在里面去修改我们控件样式属性 实现方法: 同样我们在构造方法中初始化一些组件属性,并把布局文件引用过来 public...,样式不好看大家多包含,为了方便把两个TitleBarView放在了一个布局文件中 好了代码放到了github上,小伙伴们求star https://github.com/Hankkin/TitleBarViewDemo.git

1.4K20

项目需求讨论 — 用Transition做一个漂亮登录界面

主要还是来看具体如何实现就来写下具体如何一步步来实现这个效果。 也按照相应原理写了个Demo。最后效果如下图所示(其中layout布局就直接从github上面拷贝过来了): ?...其他参考文章: 曲线运动-1 曲线运动 - 2 第三步fab按钮动画结束出现注册界面: 我们上一步对fab按钮设置了过渡动画。...只不过默认这个注册界面是不可见,等到我们fab按钮动画结束,我们再让注册界面可见就可以了。...,但是华为就很明显是曲线)不知道是什么原因,知道可以告诉。...网上文章清一色都是要求app主题设置里面这个属性要是true,但是设成了false,为什么也是没问题。比如activity之间共享元素动画也是一样执行

1.8K20

私人订制Android本地图片选择器

初步效果图 修改源码 通过运行调试,发现框架中有些功能与需求不一致,因此产生了修改源码想法,总结需要更改原功能点如下: 选择完达到上限数量图片,无法重新回到图片选择页面 ?...其原因是,若之前选择好图片,但是想想,现在不想要选择图片了,这时候我们想把图片清空掉,这时候需要点击浮动按钮,来更新选中图片列表。...未选择图片时不显示预览按钮 通过布局id——iv_preview在PhotoSelectActivity中查找,在refreshSelectCount方法里找到了对预览按钮可见设置:...refreshSelectCount方法源码 从源码中可以看到,预览按钮可见性判断逻辑仅仅与isEnablePreview有关,而没有选中图片数量进行关联,所以我们修改代码如下: public...修改布局代码逻辑 布局代码逻辑修改,其思路与上一节修改源码一样,因需求效果图功能与GalleryFinal功能基本一致,逻辑上并不需要做很多修改,而布局修改仅涉及到ImageButton变成

1.4K30

Android自定义View

button.setText("删除"); ThroughView.this.addView(button, lp); // 控件中加入按钮按钮参数...这里我们来看一关于setVisibility方法参数: 可见(visible),占用布局空间且可见 XML文件:android:visibility="visible" Java代码:view.setVisibility...(View.VISIBLE); 不可见(invisible),占用布局空间但是不可见 XML文件:android:visibility="invisible" Java代码:view.setVisibility...(View.INVISIBLE); 隐藏(GONE),不占用布局空间,也不可见 XML文件:android:visibility="gone" Java代码:view.setVisibility(View.GONE...,控件中画了一个圆并且通过它点击事件来实现改变控件颜色计数, 最后在主布局文件activity_main.xml中加入这个控件,你也可以在MainActivity.java代码中新建一个再通过代码加入布局文件中

58410

Android 3D滑动菜单完全解析,实现推拉门式立体特效

还不了解滑动菜单如何实现朋友,可以去翻一翻之前文章。说到这里必须要吐槽一了,最近发现有不少网站个人将我文章恶意转走,而且还特意把第一行原文地址信息去除掉。...因此今天也是在这里特别申明一所写所有文章均是首发于CSDN博客,如果你阅读这篇文章时是在别的网站,那么你将无法找到我前面所写关于传统滑动菜单文章,而且你疑问留言也将得不到解答。...布局里面,我们放入了三个直接子布局,第一个RelativeLayout也就是左侧布局了,里面简单地放了一个TextView一个按钮。...第二个LinearLayout是右侧布局,里面放入了一个按钮一个ListView,都是用于显示左侧布局而准备。第三个是Image3dView,当然是用于在滑动过程中显示左侧布局镜像图片了。...并且在按钮点击事件里也加入了显示隐藏左侧布局逻辑。 好了,这样所有的编码工作就已经完成了,让我们来运行一吧,效果如下图所示: ? 怎么样?效果非常炫丽吧!

2.9K100

Android布局优化之ViewStub、include、merge使用与源码分析

大家好,又见面了,是你们朋友全栈君。 在开发中UI布局是我们都会遇到问题,随着UI越来越多,布局重复性、复杂度也会随之增长。...例如你有五个界面,这五个界面的顶部都有布局一模一样一个返回按钮一个文本控件,在不使用include情况你在每个界面都需要重新在xml里面写同样返回按钮和文本控件顶部栏,这样重复工作会相当恶心...我们注意看注释5处,这里就解释了为什么include标签被引入布局根元素都设置了id情况,通过被引入根元素id来查找子控件会找不到情况。...其实ViewStub就是一个宽高都为0一个View,它默认是不可见,只有通过调用setVisibility函数或者Inflate函数才会将其要装载目标布局给加载出来,从而达到延迟加载效果,这个要被加载布局通过...inflate()函数,在该函数中将加载目标布局,获取到根元素,如果mInflatedId不为NO_ID则把mInflatedId设置为根元素id,这也是为什么我们在获取评论ListView时会使用

1.1K20

Android仿简书长按文章生成图片效果

前言 使用简书APP同学都知道,简书有这样一个功能:文章页长按内容时底部会出现一个 生成图片分享 按钮,点击之后就可以将当前文章生成一张长图片,这张图片可以保存到本地或分享给好友,同时还可为图片设置成为白黑两种风格...向简书意见反馈,得到回复是,使用点击分享按钮生成图片功能;分享菜单包含生成长图功能的确是可以。...但是,还是很怀念之前长按生成图片功能,所以作为一名程序猿;怀着好奇心情,决定自己去实现这样一个功能. 效果预览 老规矩,首先看一实现效果;虽然整体没有简书有范,个人感觉还是挺像。...具体实现可查看 源码 长按菜单实现 这里特意说一,长按弹出底部按钮实现方式。...到这里,我们就完全实现了仿照简书长按生成图片功能。那么回过头再来看,这样一个功能,为什么手机上,简书APP长按功能会有bug呢。

1.7K20

Android仿淘宝购物车,玩转电商购物车

非编辑状态可以显示店铺编辑,显示结算,商品信息。通过每一个店铺上面的编辑状态,该店铺旗下所有商品布局都要进行相应变化。编辑状态,需要改变商品数量删除商品。...】 * 当我们按ActionBar "编辑"按钮, 应该把所有组文字显示"编辑",并且设置按钮为不可见 * 当我们完成编辑,再把组编辑按钮设置为可见 * 不懂,请自己操作淘宝...(View.VISIBLE); } /** * 思路:当我们按"编辑"按钮,组处于编辑状态,文字显示"完成" * 当我们点击“完成”按钮,文字显示"编辑“...,去判断是组对下辖子元素编辑 还是ActionBar对组瞎元素编辑 * 如果组编辑按钮可见,那么肯定是组对自己下辖元素编辑 * 如果组编辑按钮可见,那么肯定是ActionBar...难点在于店铺与商品,单选框,编辑按钮之间关系处理布局改变。

2.8K30

把 Toolbar 转了一变成了菜单

思路 看上去好像 Toolbar 变成了菜单,但大家也能猜到,这里面的旋转菜单其实 Toolbar 是两个控件,左上角菜单按钮也是也是两个按钮,只不过在同样位置放了同样图片。...旋转动画 Gif 图可能不明显,菜单展开收起时候是会抖一,有一种「DUANG」感觉。是不是有种弹簧感觉?没错,就是新出弹簧动画(SpringAnimation)。...至于这里 listener 是一个动画监听器,监听两个动画开始结束,供外部使用。...计算方法是,菜单控件旋转角度,等于横向滑动距离占屏幕宽度比例,乘以 -90°。至于为什么宽度要乘以 0.8,是为了让手指在屏幕上滑过 80% 宽度,就可以将菜单完全收起。...还有就是手指抬起时处理。觉得在用户向右滑动菜单时,大部分情况是希望将菜单收起,应该让它更容易收起。

61920

Android 天气APP(二十八)地图搜索定位

这样就算是优化了一,OK开始修改布局了,布局会用到一个背景样式两个图标 shape_search_bg.xml <?xml version="1.0" encoding="utf-8"?...而我在开始动画时候也加了一个对于定位按钮判断,因为这个控件定位按钮在同一水平线上,又因为底层布局是FrameLayout,所以会出现覆盖情况,这并不是想要,所以我加了一个控制,如果展开时候处于手动定位则隐藏自动定位按钮...在输入法搜索按钮点击,获取到内容不为空则进行地址解析,new一个GeoCodeOpting(),传入城市地址,这里可以传同样值。那么解析结果呢? ?   ...这里还多加了一个关闭搜索布局方法代码。来运行一吧。 ? 你以为这就完了吗?当然没有!真是猜不透自己啊!哈哈哈哈!...展开这里稍微讲解一,因为展开时候并不知道你搜索布局是否展开,所以加了一个判断,如果你搜索布局是展开,那么先收缩搜索布局,再隐藏搜索布局,这里新开了一个延时线程,500毫秒执行隐藏动画,

94710

Android 组合控件实现布局复用方法

看到很多项目会有实现自己标题栏做法,通常界面是左边按钮或文字,加上中间标题右边按钮或文字组成。比较好一种做法是使用include标签,复用同一个xml文件来实现布局复用。...但是这种方法是通过代码方式来设置标题,左右按钮等其他属性,会导致布局属性Activity代码耦合性比较高。...因此,我们要通过自定义View,继承ViewGroup子类来实现这样布局,降低布局文件Activity代码耦合性。...(View.VISIBLE); } else { titleBarLeftBtn.setVisibility(View.INVISIBLE); } //设置左边按钮文字 String leftButtonText...(View.VISIBLE); } else { titleBarRightBtn.setVisibility(View.INVISIBLE); } //设置右边按钮文字 String rightButtonText

1K51

实战 | 使用揭露动画(Reveal Effect)做一个丝滑Activity转场动画

/tree/master/reveal-animation 这个点进去是他GitHub,demo下下来,代码看一,自己写个小demo(是先在一个activity里面跑通揭露动画,再进一步将揭露动画实现成跳转动画...; 这篇文档跟代码算是帮上大忙了,有较大参考价值; 不同是作者思路是在跳转目标活动中,启动做揭露动画收挽,收挽结束再finish(); 这里根据情况修改为跳转目标活动中按返回键即...详细可见参考文档; “丝滑”之解 这个转场动画要实现得丝滑,需要注意几个细节: 活动A跳转到活动B情况, a.在A点击触发跳转时刻,揭露动画要放在哪个活动展开; b.在B按返回键之后,揭露动画又要放在哪个活动收挽...原生控件来作为揭露动画操作对象,即通过对View控件显示隐藏以及动画操作来具体实现揭露动画; 最后放置一个悬浮按钮,用于启动点击事件,这里响应事件是启动揭露动画: 另外说一,关于FloatingActionButton...(View.VISIBLE);//按返回键时,动画开启,揭露层设置为可见 fab.setVisibility(View.INVISIBLE); }

1.9K30

Android开发之基本控件详解四种布局方式

下方代码也是放在按钮点击事件中,每点击一次进度条进度就增加10,直到增到最大值时ProgressBar就会变成不可见。变为不可见,接着就会把进度设置成0。...下方是在按钮点击委托代理方法中添加ProgressDialog,点击按钮时就显示ProgressDialog。...前两者是常用,所以今天就着重讨论一LinearLayout。 说到Android中布局方式想对比一iOS开发中布局方式。...因为这种布局方式一旦设置Frame,控件位置大小就固定了,所以被成为绝对布局。...接下来具体介绍一Android开发中布局方式。 1. LinearLayout (线性布局) 说到LinearLayout, 想说一流式布局

1.7K50

Android中使用ViewStub提高布局性能

在Android开发中,View是我们必须要接触用来展示技术.通常情况随着View视图越来越复杂,整体布局性能也会随之下降.这里介绍一个在某些场景提升布局性能View,它就是ViewStub...如果默认加载子话题View,则会造成内存占用CPU消耗 所以,这时候就ViewStub就派上用处了.使用ViewStub可以延迟加载布局资源....关于ViewStub事 除了inflate方法外,我们还可以调用setVisibility()方法加载布局文件 一旦加载布局完成,ViewStub会从当前布局层级中删除 android:id指定ViewStub...android:layout属性值之后,运行(点击Button按钮)得到产生了如下崩溃 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 E AndroidRuntime...关于ViewStub一点代码剖析 inflate vs setVisibility inflatesetVisibility共同点是都可以实现加载布局 1 2 3 4 5 6 7 8 9 10 11

67410
领券