1.常用Android控件最终都会继承自View类 2.ViewGroup是一些布局类列表的基类,包括View和ViewGroup 3.构造界面的三种方法    a.完全使用代码(太灵活,而不好维护)    b.在xml文件中定义(不太灵活)    c.结合两种方法,在xml文件中定义静态部份,在代码中实现灵活部分   4.定义       视图.部件.控件:表示一种用户界面元素       容器:包含视图的视图.例如网格,网格中的每一个单元格是一个视图       布局:容器和视图的可视排列,…
     目前为止,我们已经介绍了android的基础内容,但是还没开始接触用户界面(UI).本章我们将开始探讨用户界面和控件.我们先讨论一下android中UI设计的一般原理,然后我们在介绍一下android sdk自带的UI控件,这些是你将要创建的UI的基本模块.我们还会讨论view 适配器和layout管理器.View适配器用来想控件提供数据,然后控件对数据进行显示.数据可以是数组,数据库或其它数据源.正如其名字所示,layout管理器负责管理控件在屏幕中的显示位置.另外,我们还会学习st…
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! Android 给我们提供了大量的 UI控件,下面我们简单试试几种常用的控件. 一.TextView 在布局文件中加入TextView元素: <TextView android:text="This is TextView!" android:gravity="center" android:layout_width="match_parent" an…
前面学习的是android的基本控件和布局的使用,可是主要的控件和布局有时候并不能实现复杂的布局.我们来看下各种控件和布局的关系. 可见全部的控件都是直接或者间接的继承自View的,全部的布局都是直接或者间接基础自ViewGroup的.View是Android中一种最主要的UI组件,它能够在屏幕的上绘制一块矩形区域,并能响应这块区域的各种事件,因此,我们使用的各种控件事实上就是在View的基础上又加入了各种各自特有的功能.而ViewGroup则是一种特殊的View,它能够包括非常多的View和子…
ListView控件允许用户通过上下滑动来将屏幕外的数据拉到屏幕内,把屏幕内的数据拉到屏幕外. 一.ListView的简单用法第一步:先创建一个ListViewTest项目,在activity_mian.xml文件中添加ListView控件,宽度和高度可以设置为全屏,即在全屏范围内滑动. 第二步:修改MainActivity中的代码 第三步:运行程序,可以实现上下滚动屏幕的效果(点击屏幕滑动或者鼠标滑动)        代码分析: 1.先将一些数据定义在字符串数组中 2.数据是不能直接传递到Li…
在Android中,可以使用Webview控件来浏览网页.通过使用该控件,我们可以自制一个简单的浏览器,运行效果如图1所示. 图1 运行效果 1.WebView 在使用WebView控件时,首先需要在xml布局文件中定义一个WebView控件,定义的方法如下: <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="ma…
ViewGroup文档 http://developer.android.com/training/index.html 继承自ViewGroup需要重写onLayout方法用来为子View设定位置信息 必须重写当前控件的onLayout方法 abstract void onLayout(boolean changed, int l, int t, int r, int b) 问题:onLayout传入的l,t,r,b是什么?答:当前view需要在它的父view上呈现的坐标. ex:child.…
一.创建自定义TopBar头部菜单条 实现步骤: 1.在values中添加attrs.xml文件,设置自定义属性. 2.添加Topbar类,继承RelativeLayout,实现具体功能. 3.添加到页面上,并设置添加事件. 参考代码: values\attrs.xml <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="Top…
原文:Jetpack Compose学习(9)--Compose中的列表控件(LazyRow和LazyColumn) - Stars-One的杂货小窝 经过前面的学习,大致上已掌握了compose的基本使用了,本篇继续进行扩展,讲解下载Compose中的列表控件LazyRow和LazyColumn 之前也是讲解Jetpack Compose学习(6)--关于Modifier的妙用 | Stars-One的杂货小窝,可以通过Modifier属性将Row和Column组件改造为可滑动的 但是如果你需…
不少人应该见过小米手机系统音量控制UI,一个圆形带动画效果的音量加减UI,效果很好看.它是怎么实现的呢?这篇博客来揭开它的神秘面纱.先上效果图 相信很多人都知道Android自定义控件的三种方式,Android自定义控件View(一)自绘控件,Android自定义控件View(二)继承控件,还有就是这一节即将学习到的组合控件.我们通过实现圆形音量UI来讲解组合控件的定义和使用. 组合控件 所谓组合控件就是有多个已有的控件组合而成一个复杂的控件.比如上图的音量控件就是一个完美的组合控件.我们来分析…