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

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

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

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

    Android之ViewStub的简单使用

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

    64430

    再学一次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.7K40

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

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

    3.5K53

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

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

    1.6K20

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

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

    1.4K30

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

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

    1.8K20

    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代码中新建一个再通过代码加入布局文件中

    60810

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

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

    3K100

    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.2K20

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

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

    1.7K20

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

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

    2.9K30

    我把 Toolbar 转了一下变成了菜单

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

    64320

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

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

    97410

    实战 | 使用揭露动画(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中使用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 inflate和setVisibility的共同点是都可以实现加载布局 1 2 3 4 5 6 7 8 9 10 11

    70310

    android 设置标题栏背景颜色_状态栏菜单栏都在哪

    带有底部导航栏手机底部导航按钮会和navigationbar重叠 如下图所示: 全屏时,由于视图布局会填充到状态栏和导航栏下方,如果不使用android:fitsSystemWindows=”true...”属性,就会使底部导航栏和应用底部按钮重叠,导视按钮点击失效,这该怎么办?...不使用fiySystemWindow属性,布局怎么能不遮挡状态栏文字 跟第三章节类似,在主页中,需要使布局中带文字的布局向上margin状态栏的高度。...而对于第一个首页和第四个我的fragment,则需要布局的图片填充到状态栏底下,而标题栏要位于状态栏下方,这其实只需要一种取巧实现,一般手机状态栏高度都是在25dp左右,当然在代码中动态获取状态栏高度,...感兴趣的小伙伴可以参下:android沉浸式状态栏、fitsSystemWindows、标题栏折叠 下面我们说说怎么在界面滑动时,修改状态栏和标题栏文字颜色。

    2.3K10

    Android常见XML属性解析

    保证所有这些控件的百分比和为100. weight是线性布局的一个独特的属性,我们可以使用这个属性来按照比例对界面进行分配,完成一些特殊的需求。 但是,我们对于这个属性的计算应该如何理解呢?...我们在布局里面设置为线性布局,横向排列,然后放置两个宽度为0dp的按钮,分别设置weight为1和2,在效果图中,我们可以看到两个按钮按照1:2的宽度比例正常排列了,这也是我们经常使用到的场景,这是时候很好理解...我们可以看到,在这种情况下,占比和上面正好相反,这是怎么回事呢?说到这里,我们就不得不提一下weight的计算方法了。...android:visbility VISIBLE:设置控件可见 INVISIBLE:设置控件不可见 GONE:设置控件隐藏 而INVISIBLE和GONE的主要区别是:当控件visibility属性为...可见(visible) XML文件:android:visibility=”visible” Java代码:view.setVisibility(View.VISIBLE); 不可见(invisible

    1.2K20
    领券