自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 【计算机网络】HTTP基础知识

http基础知识

2023-02-23 10:55:50 121

原创 【Android开发】 Activity构成

Activity构成在自定义 View 的时候,需要去了解 View 体系的一个非常重要的知识点—— View 的事件分发机制。在讲 View 的事件分发机制之前,需要先了解一下 Activity 的构成,因为当你点击一个 View 时,会产生点击事件,点击事件最先传递到 Activity。先来看 Activity 是怎么加载布局的: public void setContentView(@LayoutRes int layoutResID) { getWindow().setC

2022-02-18 16:14:15 1289

原创 【Android开发】 获取本地视频封面

获取本地视频封面或许你遇到这样的场景,想做一个视频播放器,视频在播放之前展示一个封面图,想截取某一帧/第一帧作为封面图。要实现这个功能,只需要使用 Android 系统 api 提供的 MediaMetadataRetriever 类即可。 public static Bitmap getLocalVideoBitmap(String localPath) { Bitmap bitmap = null; MediaMetadataRetriever retrieve

2021-10-09 18:23:22 1392

原创 【Android开发】TextInputLayout

TextInputLayout在 Android 开发中,不可避免的会出现使用各种输入框的场景,通常的,我们都会去考虑使用或继承 Android 原生的一个控件叫做 EditText。EditText的使用我们模拟一个输入手机号的输入框 <EditText android:id="@+id/et_phone" android:layout_width="300dp"

2021-09-26 16:04:42 651

原创 【Android开发】 View的属性动画

View的属性动画在许多的场景中,我们可能不只需要简单的移动,旋转,透明,变大缩小等等,我们需要加入持续的时间,定格的时间,多种组合特效等等,于是我们需要使用 Android 的动画能力。在早期的 Android 中,只有帧动画和 View 动画。View 动画提供了 AlphaAnimation、 TranslateAnimation、 RotateAnimation 和ScaleAnimation 这4种动画方式。但他们不具有交互性,即当某个元素发生 View 动画之后,其响应事件的位置依然在动画进行

2021-09-08 15:28:04 289

原创 【Android开发】 View的滑动

View的滑动View 的滑动式 Android 实现自定义控件的基础。可以通过以下几种方式实现 View 的滑动。layout()View 在进行绘制的时候会调用 onLayout() 方法来设置显示的位置。通过修改 View 的 left、 top、 right、 bottom 这4个属性来控制 View 的坐标。 @Override public boolean performClick() { return super.performClick(); }

2021-09-03 16:45:06 106

原创 【Android开发】 Toolbar

Toolbar在Android 开发中,在写每个 Activity 的时候,它的顶部都会有一个标题叫做 ActionBar,它被限定只能位于 Activity 的顶部,从而不能实现一些 Material Design 的效果。因此官方现在不推荐使用 ActionBar 了。因此我们推荐使用 Toolbar,它不仅继承了 ActionBar 的所有功能,而且支持比 ActionBar 更集中的功能。一个 Toolbar 可以包含以下可选元素的组合:导航按钮。这可能是向上箭头、导航菜单切换、关闭、折叠、完

2021-09-02 17:45:27 152

原创 【Android开发】 startActivityForResult() 被弃用问题

startActivityForResult() 被弃用问题之前说过启动另一个 activity 可以通过用 Activity 类提供的 startActivityForResult() 和 onActivityResult() 的 API 来获取另一个 activity 返回的结果,但是现在我们现在会发现使用这样的 API 产生了错误提示。'startActivityForResult(Intent!, Int): Unit' is deprecated /** * Call {@l

2021-08-23 17:08:26 17064

原创 【Android开发】 Android数据和文件存储

Android数据和文件存储Android提供几种选择来保存数据App-specific storage 存储只有 app 内可用的数据,可以存储在内部也可以存储在外部。使用内部存储的目录来保存其他应用程序不应该访问的敏感信息。Shared storage 存储 app 中想要去共享给其他 app 的文件。包括 Media、documents、filesPreferences 用key-value来存储私有数据和原始数据Database 用 Room 持久化库来将结构化的数据存储在私有的数据库中

2021-08-23 11:29:35 528

原创 【Android开发】 SQLite数据库存储

SQLite数据库存储SQLite是一种轻量级的关系型数据库,它的运算速度非常快,占用资源少,通常只需要几百KB的内存就足够了,因此特别适合在移动设备上使用。同时,它支持标准的SQL语法,遵循数据库的ACID事务,上手较为简单。定义架构和协定SQL 数据库的主要原则之一是架构,即数据库组织方式的正式声明。架构反映在您用于创建数据库的 SQL 语句中。您可能会发现创建伴随类(称为协定类)很有用,该类以系统化、自记录的方式明确指定了架构的布局。协定类是定义 URI、表和列名称的常量的容器。通过协定类,

2021-08-18 14:59:01 415 1

原创 【Android开发】 Handler做消息发送与异步处理遇到的坑

Handler class should be static or leaks might occur在Android线程通信中,常用的方法就是创建一个Message(android.os.Message) 对象,并将它的what字段指定对应值,调用Handler的sendMessage() 方法将这个Message发送出去。代码如下 val handler = object : Handler() { val TEST = 1 override fun handl

2021-08-11 16:49:25 1061

原创 【Android开发】 Activity被回收了怎么保存数据

活动被回收了怎么保存数据当一个活动进入停止状态,是有可能被系统回收的,例如用户在活动A的基础上启动了活动B,活动A就进入了停止状态,这个时候由于系统的内存不足,将活动A回收掉了,然后用户此时回到活动A,这时并不执行onRestart()方法,而是执行onCreate()方法,这时之前活动A保存的临时数据将会消失。onSaveInstanceState()回调@Overrideprotected void onSaveInstanceState(Bundle outState) { super.o

2021-06-07 10:30:25 325

原创 【Android开发】 用Intent传递数据

用Intent传递数据向下一个Activity传递数据Intent提供了一系列putExtra()方法的重载,可以把我们想要传递的数据暂存在Intent中,启动了另一个活动后,只需要把这些数据再从Intent中取出就可以了。button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String data = "Hello World"; Intent inte

2021-05-31 11:49:14 1314

原创 【Android开发】 在Activity中使用Intent

在Activity中使用IntentIntent是Android程序中各组件之间交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般被用于启动活动、启动服务以及发送广播等场景。显式IntentIntent有多个构造器重载,其中一个是Intent(Context packContext, Class<?> cls)。这个构造器函数接受两个参数,第一个参数Context要求提供一个启动活动的上下文,第二个参数Class则是指定想要启动的目标

2021-05-30 01:00:11 221 2

原创 【Android开发】 销毁一个Activity

销毁一个Activity如何销毁一个Activity?其实答案很简单,只要按一下Back键就可以销毁当前Activity了。如果你希望在程序中使用代码销毁Activity,只需要调用一下finish()方法即可。button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); }});第一行代码Android(第二版 ) 郭霖 著 人民邮电出

2021-05-29 23:55:02 1190 2

原创 【Android开发】 在Activity中使用Menu

在Activity中使用MenuAndroid给我们提供了一种方式,可以展示菜单的同时,还能不占用任何的屏幕空间新建xml首先在res目录下新建一个menu文件夹,右键res目录 - New - Directory,输入文件夹名menu,点击OK。接着在这个文件夹下新建一个叫main的菜单文件。右键menu文件夹 - New - Menu resource file,文件名main,点击OK创建完成。添加如下xml代码:<menu xmlns:android="http://schemas.

2021-05-28 23:45:06 446

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除