Android 新手上路
文章平均质量分 74
新手上路笔记
猫咪老师nia~
一个喜欢悬疑片的侦探小跟猫
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android高级资源 9-Patch
介绍Drawable 资源是 Android 应用中使用最广泛、灵活的资源。它不仅可以直接使用图片作为资源,而且可以使用 XML 文件作为资源,只要一个 XML 文件可以被系统编译成 Drawable 子类的对象,那么该 XML 文件就可以作为 Drawable 资源。Drawable资源保存在res\drawable目录中,实际上,为了适应不同屏幕分辨率,通常情况下将其保存在res\drawable-mdpi、res\drawable-hdpi、res\drawab...原创 2021-09-04 11:38:05 · 1054 阅读 · 0 评论 -
Android高级资源 StateListDrawable 资源
介绍StateListDrawable 资源是定义在 XML 文件中的 Drawable 对象,能根据状态来呈现不同的图像。例如,一个 Button 组件存在多种不同的状态(pressed、enabled 或 focused 等),使用 StateListDrawable资源可以为按钮的每个状态提供不同的按钮图片。StateListDrawable资源在实际开发中用处很多,例如,今日头条中选择登录方式的按钮,效果如图 13.10 所示。常用XML属性状态属性 描述 ...原创 2021-09-04 11:38:16 · 508 阅读 · 0 评论 -
互动事件之手势检测
介绍手势是指用户手指或触摸笔在屏幕上连续触碰的行为。例如,在屏幕上从左到右或从上到下划出的一个动作就是手势。Android 为手势行为提供了支持。最常用的就是手势检测。下面将详细介绍如何实现手势检测。Android 为手势检测提供了一个 GestureDetector 类, 该 类 代 表 了 一 个 手 势 检 测 器。 创建GestureDetector 时,需要传入一个 GestureDetector.OnGestureListener 实例。GestureDet...原创 2021-09-04 11:37:24 · 282 阅读 · 0 评论 -
Android高级资源 菜单(menu)资源
定义菜单资源文件菜单资源文件通常放置在 res\menu 目录下,在 Android Studio 中创建项目时,默认是不能自动创建 menu 目录的,所以需要手动创建。菜单资源的根元素通常使用 <menu></menu> 标记,在该标记中可以包含多个 <item></item> 标记,用于定义菜单项,可以通过表 13.1 所示的各属性来为菜单项设置标题等内容。属性 描述 android:id 用于为菜单项设置 ID,也...原创 2021-09-04 11:37:41 · 1730 阅读 · 0 评论 -
Android的基本资源访问
字符串(string)资源定义字符串资源在 values 文件夹上单击鼠标右键,New→Values Resource File→输入自定义资源文件名称,例如strings<resources> <string name="app_name">Cat</string></resources>使用字符串资源1.在 Java 文件中使用字符串资源的语法格式如下:getResources().getS...原创 2021-09-04 11:36:09 · 699 阅读 · 0 评论 -
互动事件之触摸屏互动
介绍当下,主流的 Android 手机 / 平板电脑都以较大的屏幕取代了外置键盘,很多操作都是通过触摸屏幕来实现的。其中,常用的触摸屏事件主要包括单击事件、长按事件和触摸事件等。下面分别进行介绍。单击事件在手机应用中,经常需要实现在屏幕中单击某个按钮或组件执行一些操作。这时就可以通过单击事件来完成。在处理单击事件时,可以通过为组件添加单击事件监听器的方法来实现。Android为组件提供了 setOnClickListener() 方法,用于为组件设置单击事件监听器...原创 2021-09-04 11:37:12 · 1118 阅读 · 0 评论 -
互动事件之物理按键
互动规则介绍现在的图形界面应用程序,都是通过事件来实现人机交互的。事件就是用户对图形界面的操作。在Android手机和平板电脑上,主要包括物理按键事件和触摸屏事件两大类。物理按键事件包括按下、抬起和长按等;触摸屏事件包括单击事件、长按事件和触摸事件等。在 Android 中提供了两种方式的事件处理,一种是基于监听的事件处理,另一种是基于回调的事件处理,下面分别进行介绍。基于监听的事件处理实现基于监听的事件处理,主要做法就是为 Android 的 UI 组件绑定特...原创 2021-08-30 14:26:52 · 1296 阅读 · 0 评论 -
Fragment
介绍Fragment 是 Android 3.0 新增的概念,其中文意思是碎片,它与 Activity 十分相似,用来在一个Activity 中描述一些行为或一部分用户界面。使用多个 Fragment 可以在一个单独的 Activity 中建立多个 UI 面板,也可以在多个 Activity 中重用 Fragment。例如,微信主界面就相当于一个 Activity,在这个 Activity 中包含多个 Fragment,其中"微信" "通讯录" "发现" "我"这 4 个功能界面,每一个...原创 2021-08-30 09:13:32 · 363 阅读 · 0 评论 -
Intent
Intent用法介绍原创 2021-08-25 09:28:54 · 372 阅读 · 1 评论 -
Activity
生命周期A活动 B活动 onCreate onStart(可见) onResume(获得焦点) 跳转到B活动 onPause(失去焦点) onCreate onStart onResume onStop(不可见) onSaveInstanceState 结束B活动 onPause onRestart onStart onResu原创 2021-08-24 14:26:08 · 639 阅读 · 0 评论 -
自定义控件
介绍在日常的 Android 开发中经常会和控件打交道,有时 Android 提供的控件未必能满足业务的需求,此时开发者就可以通过自定义控件的方式来解决业务中的需求。自定义控件实现流程自定义属性自定义一个控件的时候,多数是因为系统自带的控件无法满足开发需要的属性或者是功能,下面以 TextView 控件为例,通过自定义控件的方式,模拟声明 TextView 控件的常用属性,常用属性类型的取值说明如表属性类型 获取方法 描述 float getFloat() 浮原创 2021-08-24 10:08:30 · 1387 阅读 · 0 评论 -
Android支持库RecyclerView(StaggeredGrid)
介绍在许多电商的 App 当中都需要网格交错的布局进行商品的展示,因为不同商品的外观与尺寸都是不一样的,例如,一台电视可能需要横向的尺寸比较长一些,而冰箱就需要纵向的尺寸长一些,所以要是通过尺寸相同的网格布局来实现必然会有部分商品的图片被压缩变形。在这种情况下根据商品尺寸的不同来展示各种商品就可以使用瀑布流网格布局。通过 RecyclerView 实现瀑布流网格布局时需要使用 StaggeredGridLayoutManager 类,然后在适配器中动态设置每个网格的尺寸,最后 RecyclerView将原创 2021-08-23 16:45:03 · 473 阅读 · 0 评论 -
Android支持库RecyclerView(Grid)
介绍如果让 RecyclerView 实现 1 个网格布局的运行效果,就需要使用 GridLayoutManager 类也就是网格布局管理器。GridLayoutManager 就像 GridView 一样,需要设置网格的列数才可以正常的显示。相关方法GridLayoutManager 可以通过构造方法指定网格的列数,也可以通过以下的两种方法来设置网格的列数,具体方法如下:setSpanCount:设置网格的列数。 setSpanSizeLookup: 设置网格 item(子项)所占有的位原创 2021-08-21 16:48:38 · 1437 阅读 · 0 评论 -
Android支持库RecyclerView(Linear)
介绍RecyclerView 是谷歌公司在 Android 5.0 之后推出的一个新控件,RecyclerView 可以说是ListView 和 GridView 的增强升级版。首先它可以实现如图 7.24 所示的垂直列表,然后可以实现如图 7.25 所示的网格列表,它还可以实现如图 7.26 所示的网格交错的运行效果。RecyclerView 不仅可以秒杀列表视图 ListView 与网格视图 GridView,甚至还可以秒杀瀑布流网格开源框架中的 PinterestLikeAdapterView,因原创 2021-08-21 15:27:47 · 500 阅读 · 0 评论 -
Android支持库SwipeRefreshLayout
介绍SwipeRefreshLayout 是 Android 官方 v4 支持包中的一个组件,该组件当中只接受 1 个子组件也就是需要刷新内容的组件,如果有多个子组件时将只展示第一个子组件中所更新的内容,后面的子组件将不予展示。这个子组件必须是允许滚动的,如 ListView、GridView 或者是 RecyclerView 等。该组件主要用于在屏幕中手指向下滑动时起到下拉刷新数据的作用,例如,计步软件中同步数据时就可以使用 SwipeRefreshLayout 来实现,如图 7.20 所示。相关原创 2021-08-21 10:46:54 · 891 阅读 · 0 评论 -
Android支持库DrawerLayout
介绍DrawerLayout 在 Android v4 包中实现了侧滑菜单效果的布局,它显示在屏幕的最左侧,默认情况下是隐藏的,当用户用手指从屏幕左侧向右侧滑动时该组件将显示,单击该布局外侧或者向原来的方向滑动时该组件消失,例如,图 7.16 所示的这款 App 就使用了该组件实现隐藏在左侧的菜单。用法DrawerLayout 是一个布局文件管理器,在这个布局当中允许放入 2 个组件或者是布局,第 1 个用于显示在主屏幕当中,第 2 个用于显示滑动菜单中的内容,在设置滑动菜单实现的内容时在该原创 2021-08-21 10:00:15 · 3817 阅读 · 1 评论 -
Android支持库CardView
介绍CardView 是Android 5.0 所推出的组件, 它是用于实现卡片式布局的重要组 件, 以前由appcompat-v7 库提供,现在是androidx.appcompat。CardView 是 FrameLayout 的子类,只是单独提供了圆角与阴影的效果,看起来立体感更强、更加美观。CardView 一般被使用在如 ListView、GridView、RecyclerView 等列表视图的子项(item)布局中。XML属性CardView 支持的 XML 属性XML属性原创 2021-08-21 09:30:11 · 696 阅读 · 0 评论 -
Android支持库CollapsingToolbarLayout
介绍CollapsingToolbarLayout 用于美化 Toolbar 的运行效果, 它是由Design Support 库 提 供 的。CollapsingToolbarLayout 被设计用于 AppBarLayout 的子布局,AppBarLayout 是一个垂直的 LinearLayout,只是为了实现交互动画效果它增加了一些滚动特性。AppBarLayout 只有作为 CoordinatorLayout 的直接子布局才可以正常的工作,如果 CoordinatorLayout 包含了一个不原创 2021-08-20 18:38:07 · 3665 阅读 · 0 评论 -
Android支持库ToolBar
介绍在 Android Studio 中默认创建 1 个 App 时,顶部都会默认添加导航栏 ActionBar 组件。但是ActionBar 存在一些缺点,如使用不灵活难以扩展等问题。因此在 Android 5.0 时 ToolBar 诞生了,由于它高度的可定制性、灵活性、具有 Material Design 风格等优点,越来越多的 App 开始使用ToolBar,例如,美团 App 中顶部的工具栏就可以通过 ToolBar 来实现,如图 7.6 所示。由于仍有一部分 Android 用户的手机版本低原创 2021-08-20 14:27:24 · 307 阅读 · 0 评论 -
Android权限机制
介绍Android 系统 6.0 版本之前,安装 App 时会提示用户此 App 都需要使用哪些权限,如图 7.1所示。但是用户不可以单独对某项权限进行授权或者是拒绝,如果用户安装了该 App,就表示用户已经接受了该 App 对这些权限的使用。从 Android 系统 6.0 版本开始,Android 使用了新的权限管理机制,将 App 可以使用的权限分成了两类,一类是普通权限,例如,设置手机振动或者是访问网络等。另一类是危险权限,例如,开启摄像头或者是获取地理位置等。对于普通权限,仍然和以前一样,.原创 2021-08-20 10:53:18 · 673 阅读 · 0 评论 -
通用组件SearchView
介绍SearchView 是 Android 原生的搜索框组件,它在默认的情况下显示着 1 个搜索图标,单击图标后将展开搜索框。当用户在搜索框内输入文字时可以通过监听器监听用户输入,当用户输入完成后也可以通过监听器来执行搜索功能。例如,在手机的文件管理器中搜索指定文件时,就可以使用该组件来实现,如图 6.31 所示。基本语法<SearchView android:id="@+id/ID号" android:layout_width="wrap_content" andr..原创 2021-08-20 09:56:30 · 452 阅读 · 0 评论 -
通用组件TabHost
介绍选项卡用于实现一个多标签页的用户界面,通过它可以将一个复杂的对话框分割成若干个标签页,实现对信息的分类显示和管理。使用该组件不仅可以使界面简洁大方,还可以有效地减少窗体的个数。例如,微信的表情商店界面(如图 6.28 所示),以及百度贴吧的进吧界面(如图 6.29 所示)。在 Android 中,使用选项卡,不能通过某一个具体的组件在 XML 布局文件中添加。通常需要按照以下步骤来实现:在布局文件中添加实现选项卡所需的 TabHost、TabWidget 和 FrameLayout 组.原创 2021-08-20 09:19:51 · 279 阅读 · 0 评论 -
通用组件ScrollView
介绍在默认的情况下,当窗体中的内容比较多而一屏显示不下时,超出的部分将不能被用户所看到。因为 Android 的布局管理器本身没有提供滚动屏幕的功能。如果要让其滚动,就需要使用滚动视图(ScrollView),这样用户可以通过滚动屏幕查看完整的内容。例如,今日头条的新闻界面就应用了滚动视图(如图 6.25 所示),以及 QQ 的聊天窗口也应用了滚动视图(如图 6.26 所示)。滚动视图是 android.widget.FrameLayout(帧布局管理器)的子类(android.widget.S原创 2021-08-19 18:14:36 · 348 阅读 · 0 评论 -
切换类组件PagerTabStrip
介绍ViewPager 还有两个比较好的搭档,分别是 PagerTitleStrip 类与 PagerTabStrip 类,PagerTitleStrip类直接继承自 ViewGroup 类,而 PagerTabStrip 是 PagerTitleStrip 的子类,所以这两个类也是容器类。二者都是可以实现在 ViewPager 页面上方显示标题文字,不同的是 PagerTitleStrip 只能显示单纯的标题文字,而 PagerTabStrip 类似于选项卡,标题文字下面有条横线,单击或者左右滑动都可原创 2021-08-19 16:54:15 · 605 阅读 · 0 评论 -
切换类组件ViewPager
介绍ViewPager 是由 Android v4 包提供的一个组件,它是 ViewGroup 的子类,所以它也是一个容器类,可以在其中添加其他的 view 类。ViewPager 需要一个 PagerAdapter 适配器给它提供数据,它使用的监听器是 OnPageChangeListener,用于监听页面切换的事件。在 Android 中,该组件经常被使用在左右滑动时显示多个页面的运行效果。例如,App 中的引导界面(如图 6.18 所示),以及京东商城中自动轮播的广告(如图 6.19 所示)都可以原创 2021-08-19 15:22:46 · 364 阅读 · 0 评论 -
切换类组件ViewFlipper
介绍ViewFilpper 是 ViewAnimator 的子类,该类可以通过 addView() 方法添加多个组件,然后再通过 ViewFilpper 来实现多个组件之间的切换效果。例如,手机图库中自动播放幻灯片的运行效果就可以通过它来实现基本语法<ViewFlipper android:id=”@+id/ID号" android:layout_width=”wrap_content” android:layout_height=”wrap_content”></V原创 2021-08-19 11:11:40 · 265 阅读 · 0 评论 -
图像类组件Gallery
介绍画廊视图(Gallery)表示,能够按水平方向显示内容,并且可用手指直接拖动图片移动,一般用来浏览图片,被选中的选项位于中间,并且可以响应事件显示信息。在使用画廊视图时,首先需要在屏幕上添加 Gallery 组件,通常使用 <Gallery> 标记在 XML 布局文件中添加,其基本语法如下:< Gallery 属性列表 ></Gallery>XML属性Gallery 支持的 XML 属性XML属性 描述 android:anima原创 2021-08-19 10:45:29 · 537 阅读 · 0 评论 -
图像类组件ImageSwitch
介绍图像切换器(ImageSwitcher),用于实现带动画效果的图片切换功能。例如,手机相册中滑动查看相片的功能(如图 6.1 所示)例子模拟手机相册的滑动查看相片创建滑动动画首先在 res 目录中单击鼠标右键 New → Directory 创建一个名称为 anim 的目录,然后在该目录中单击右键 New → Animation resource file 创建名称为 slide_in_left 的从左平移进入动画。<?xml version="1.0" enc.原创 2021-08-18 14:57:45 · 827 阅读 · 0 评论 -
进度条类组件RatingBar
介绍星级评分条与拖动条类似,都允许用户通过拖动的方式来改变进度,所不同的是,星级评分条是通过五角星图案来表示进度的。通常情况下,使用星级评分条表示对某一事物的支持度或对某种服务的满意程度等。例如,淘宝中对卖家的好评度就是通过星级评分条实现的(如图 5.26 所示),百度外卖的添加评论界面也应用了星级评分条(如图 5.27 所示)。基本语法:<RatingBar 属性列表 ></RatingBar>XML属性XML属性 描述 android:.原创 2021-08-17 18:18:07 · 310 阅读 · 0 评论 -
进度条类组件SeekBar
介绍拖动条与进度条类似,所不同的是,拖动条允许用户拖动滑块来改变值,通常用于实现对某种数值的调节。例如,美图秀秀中的调整相片亮度的界面(如图 5.23 所示),以及在一键清理大师的设置界面中设置延迟时间和摇晃灵敏度的拖动条(如图 5.24 所示),都应用了拖动条。基本语法:<SeekBar android:layout_height="wrap_content" android:id="@+id/seekBar1" android:layout_width="match_paren原创 2021-08-17 17:24:59 · 1395 阅读 · 0 评论 -
进度条类组件ProgressBar
介绍从图 5.19 可以看出:ProgressBar 组件继承自 View,而 SeekBar 和 RatingBar 组件又间接继承自 ProgressBar 组件。所以对于 ProgressBar 的属性,同样适用于 SeekBar 和 RatingBar 组件。当一个应用在后台执行时,前台界面不会有任何信息,这时用户根本不知道程序是否在执行以及执行进度等,因此需要使用进度条来提示程序执行的进度。在 Android 中,提供了两种进度条,一种是水平进度条,另一种是圆形进度条。例如,开心消..原创 2021-08-17 15:57:36 · 1179 阅读 · 0 评论 -
按钮类组件CheckBox
介绍在默认情况下,复选框显示为一个方块图标,并且在该图标旁边放置一些说明性文字。与单选按钮唯一不同的是,复选框可以进行多选设置,每一个复选框都提供“选中”和“不选中”两种状态。在 Android 手机应用中,复选框组件的应用也十分广泛。例如,在全民飞机大战游戏中,通过微信登录游戏时显示的授予权限界面(如图 5.15 所示),在该页面中将通过复选框显示已经授予的权限;亚马逊手机客户端的用户登录页面中的是否显示密码的复选框(如图 5.16 所示)。基本语法:<CheckBox andr.原创 2021-08-17 14:39:00 · 324 阅读 · 0 评论 -
按钮类组件RadioButton
介绍在默认情况下,单选按钮显示为一个圆形图标,并且在该图标旁边放置一些说明性文字。在程序中,一般将多个单选按钮放置在按钮组中,使这些单选按钮表现出某种功能,当用户选中某个单选按钮后,按钮组中的其他按钮将被自动取消选中状态。在 Android 手机应用中,单选按钮应用也十分广泛。例如,在使用陌陌社交工具注册新用户填写基本资料时,填写基本资料界面中的选择性别单选按钮(如图 5.11 所示),以及如图 5.12 所示的显示智力问答题的备选答案时的单选按钮。RadioButton 组件的 android原创 2021-08-17 11:50:13 · 2432 阅读 · 0 评论 -
按钮类组件Switch
介绍状态开关按钮(Switch)也是由 Button 派生出来的,所以在本质上它也算是一个比较高级的按钮,用户可以来回拖动“拇指”控制该按钮的开启与关闭或者只需轻按,就像选择复选框一样来开启该组件。在 Android 中,该组件经常被使用到 App 的设置界面当中。例如,酷狗音乐的设置界面中的功能开关(如图 5.7 所示),以及计步器 App 设置界面中的步数通知开关(如图 5.8 所示)。基本语法:<Switch android:id=”@+id/ID号" android:l.原创 2021-08-17 10:38:02 · 509 阅读 · 0 评论 -
文本类组件AutoCompleteTextView
介绍在百度上面进行关键词搜索的时候,输入需要搜索的关键字就会显示一个下拉列表,列表中会匹配到用户输入的关键词汇,效果如图 5.1 所示。Android 也为开发者提供了一个这样的组件,那就是 AutoCompleteTextView 组件也叫做动完成文本框。AutoCompleteTextView 是 EditText 的子类,从外表上看它就是一个普通的编辑框组件,其实它内在的功能就是在用户输入一定的字符时,该组件会显示一个下拉列表。在这个列表中用户单击需要的字符,该字符将自动填写在编辑框当中。原创 2021-08-16 17:56:08 · 2261 阅读 · 0 评论 -
图像类组件GridView
介绍网格视图(GridView)是按照行、列分布的方式来显示多个组件,通常用于显示图片或图标等。 例如,QQ 相册相片预览界面(如图 4.26 所示),以及口袋购物浏览商品界面(如图 4.27 所示), 都应用了网格视图。在使用网格视图时,需要在屏幕上添加 GridView 组件,通常在 XML 布局文件中使用 <GridView> 标记实现,其基本语法如下:<GridView 属性列表 ></GridView>XML属性Gri原创 2021-08-16 17:31:11 · 269 阅读 · 0 评论 -
API LayoutInflater
介绍路径:android.view.LayoutInflaterpublic abstract class LayoutInflaterextendsObject原创 2021-08-16 15:55:26 · 164 阅读 · 0 评论 -
按钮类组件 Button
介绍文字大小、颜色修改按钮颜色无效问题textAllCaps:设置字母大小<Button android:id="@+id/btn_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="按钮1" android:textSize="20sp" android:t原创 2021-08-16 15:45:03 · 816 阅读 · 1 评论 -
图像类组件ImageView
介绍图像视图(ImageView)用于在屏幕中显示任何 Drawable 对象,通常用来显示图片。在使用ImageView组件显示图像时,通常需要将要显示的图片放置在res\drawable或者res\mipmap目录中。XML属性background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。XML属性 描述 android:adjustViewBounds 用于设置 ImageView 组件是否调整自己的边界来保持所显示图.原创 2021-08-16 12:14:00 · 490 阅读 · 0 评论 -
文本类组件EditView
EditText介绍由于 EditText 类是 TextView 的子类,所以列出的 TextView 支持的 XML 属性,同样适用于 EditText 组件。需要特别注意的是,在 EditText 组件中,android:inputType 属性可以控制输入框的显示类型。例如,要添加一个密码框,可以将 android:inputType 属性设置为 textPassword用户编辑框<EditText android:id="@+id/et_1" androi.原创 2021-08-05 19:07:14 · 177 阅读 · 0 评论
分享