Android
xk_一步一步来
一步一步
展开
-
Android自定义属性时TypedArray的使用方法
有时候android传统的页面布局不足以满足我们的需求,常常需要自己定义view,通常继承View,然后重写构造方法以及onDraw等函数,再具体实现自己定义的复杂view。我们知道在给控件赋属性时,通常使用的是android系统自带的属性,比如 android:layout_height=“wrap_content”,除此之外,我们亦可以自己定义属性,这样在使用的时候我们就可以使用形如 myapp:myTextSize="20sp"的方式了,步骤大致如下:1》在项目文件res/value下面创建一个at转载 2020-05-15 13:10:33 · 723 阅读 · 0 评论 -
Android SVG矢量资源的使用方法
VectorDrawable 与 SVGAndroid 5.0(Lollipop, API 21)后,新增了<vector>标签,以VectorDrawable的形式支持SVG类型矢量图形(SVG本质为XML标记描述的图形)。※ Android不直接支持SVG图形文件SVG文件(XML)对应的VectorDrawable资源封装格式为: <vector xmlns:android="http://schemas.android.com/apk/res/android" ...转载 2020-05-10 20:49:48 · 594 阅读 · 0 评论 -
Android Studio中自带的svg图库
右击drawable文件夹,选择new/Vector Asset弹出下面框框,然后双击箭头所指位置即可选择自己需要使用的SVG图像了。原创 2020-05-10 18:43:49 · 688 阅读 · 1 评论 -
安卓dialog的使用+如何自定义dialog
看到产品给我的设计图,有辣么多的自定义的dialog,发现之前自己只会系统自带的dialog,但是这样根本满足不了产品的需求。什么叫dialog简单来说就是一句话: 弹出一个窗口,提示用户自己去选择,去提示,去分类的一些内容。 安卓自带的dialog有三种: - AlertDialog—-普通的提示对话框 - ProgressDialog–进度条对话 - DatePick...转载 2020-05-07 22:52:31 · 519 阅读 · 0 评论 -
ExpandableListView使用方法详解
一、前言 “好记性不如烂笔头”,再次验证了这句话是真的很有道理啊,一个月前看了一下ExpandableListView的使用,今天再看居然忘了这个是干啥的了,今天就详细讲解一下ExpandableListView的使用方法,感觉对于二级条目显示功能都可以实现。二、实现的功能1、可实现二级列表条目显示功能,具体包括可自定义,父布局和子布局。可实现父布局全部展开和只展开一个功能。...转载 2020-05-02 00:45:52 · 845 阅读 · 0 评论 -
Gallery用法详解
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=182297&reltid=39709&pre_thread_id=0&pre_pos=1&ext=CB官 方API的文档,可以看到这样一句话:该类已被弃用,其他水平滚动窗口小部件包括HorizontalScrollView和ViewPager从支...转载 2020-05-02 00:23:39 · 3693 阅读 · 0 评论 -
Spinner用法详解
Spinner组件一共有两个,一个是本身的Spinner,一个是android.support.v7.widget.AppCompatSpinner两者的区别在于v7内的Spinner是兼...转载 2020-05-02 00:16:57 · 1271 阅读 · 0 评论 -
GridView详解
GridView基本使用方法GridView的属性和方法详解GridView基本使用方法 GridView是一个在二维可滚动的网格中展示内容的控件。网格中的内容通过使用adapter自动插入到布局中。 下面通过实现一个简单的显示省份名的demo,介绍GridView控件的基本使用方法:在布局中使用GridView控件,实现activity_main.xml<?xml ve...转载 2020-05-01 23:31:02 · 12026 阅读 · 0 评论 -
Parcelable的使用
一、Parcelable的基本介绍Parcelable是Android为我们提供的序列化接口。一个类只要实现了这个接口,这个类的对象就可以实现序列化。可用于IPC/Binder,Activity之间的对象的传递。二、Parcelable的基本使用1、创建一个类实现Parcelable接口2、实现接口中的describeContents()和writeToParcel(Parcel des...转载 2020-04-30 20:53:00 · 610 阅读 · 0 评论 -
Intent.createChooser()
系统提供的分享实现代码如下:Intent send = new Intent(Intent.ACTION_SEND); send.setType("text/plain"); send.putExtra(Intent.EXTRA_TEXT, url); send.putExtra(Intent.EXTRA_SUBJECT, title); c.startActivity(In...转载 2020-04-30 14:27:30 · 5835 阅读 · 2 评论 -
Menu菜单用法全面讲解
(1)配置Item我们可以在res中的menu文件夹中新建一个一个menu文件<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/next" android:icon="@mipmap/back" ...转载 2020-04-30 13:54:41 · 9440 阅读 · 1 评论 -
RecycleView使用问题梳理
1)添加headview和footerview思路:参考ListView的addHeadView方法封装构建一个Adapter封装类,在adpter中维护一个HeaderView和FooterView数组,在onCreateViewHolder方法中为每一个HeaderView构建一个ViewHolder。 正解:github大神提供的组件借...转载 2020-04-30 12:32:25 · 233 阅读 · 0 评论 -
使用findLastCompletelyVisibleItemPosition()实现上滑加载新数据
页面加载相关代码:recyclerView.addOnScrollListener(new OnLoadMoreListener() { @Override public void onLoadMore() { if (canLoadMore) { canLoadMore = false; // presenter.doLoadMoreData(); //加载数据并显...原创 2020-04-30 12:27:14 · 3996 阅读 · 0 评论 -
界面打开SwipeRefreshLayout自动刷新
首先想要在界面一加载的时候出现更新效果,直接调用setRfreshing(true)是出不来效果的,必须调用SwipeRefreshLayout.post(new Runable(){ @Override public void run() { SwipeRefreshLayout.setRefreshing(true); } });关闭的...转载 2020-04-30 12:18:46 · 1286 阅读 · 0 评论 -
Material Design 系列文章
感受 Material Design UI 魅力,你不能错过的 Material Design 全系列文章:Material Design 之一 BottomNavigationView + ViewPager + Fragment 仿微信底部导航效果Material Design 之二 Toolbar + DrawerLayout + NavigationView 实现QQ侧拉抽屉...转载 2020-04-29 12:51:38 · 175 阅读 · 0 评论 -
TabLayout+ViewPager+Fragment实现切页展示
写在前面目前大多数的APP都采用的是几个Tab标签以及多个界面滑动的形式来提供多层次的交互体验,最为常用的做法就是采用TabLayout+ViewPager+Fragment的方式,最近在公司项目中遇到类似的界面,也看了各个论坛很多份博客,但是发现都没有完全把这种方法的坑填完,因此写下这篇博客,一方面是对知识的总结,另一方面也能让其他开发者们少走一些弯路,博客内容主要分为四个章节:TabL...转载 2020-04-01 20:59:53 · 524 阅读 · 0 评论 -
Android 复杂的列表视图新写法 MultiType (v3.1.0 修订版)
前言MultiType 这个项目,至今 v3.1.0 稳定多时,考虑得非常多,但也做得非常克制。原则一直是 直观、灵活、可靠、简单纯粹(其中直观和灵活是非常看重的)。在开发我的 TimeMachine 时,我有一个复杂的聊天页面,于是我设计了我的类型池系统,它是完全解耦的,我能够轻松将它抽离出来分享,并给它取名为 MultiType.从前,比如我们写一个类似微博列表页面,这样的列表是十分...转载 2020-03-31 23:37:14 · 460 阅读 · 0 评论 -
TabLayout的用法进行总结和归纳
Google官方在14年Google I/O上推出了全新的设计语言——Material Design。一并推出了一系列实现Material Design效果的控件库——Android Design Support Library。其中,有TabLayout, NavigationView,Floating labels for editing text,Floating Action Button...转载 2020-03-31 18:06:11 · 230 阅读 · 0 评论 -
ActionBarDrawerToggle和ToolBar结合使用
首先来了解以下什么是ActionBarDrawerToggle,说起ActionBarDrawerToggle,必须还要提起一个控件--DrawerLayout。那DrawerLayout又是什么呢?看下图所示:如图所示,当手指从屏幕左侧向右滑动时,会有一个Layout布局从左侧滑出,DrawerLayout就是一个实现这个功能的UI控件,但是用脚后跟想一下也能猜到,对于DrawerLayo...转载 2020-03-31 17:47:47 · 776 阅读 · 0 评论 -
BottomNavigationView的基本使用
因为最近自己在写一个壁纸类的apk,需要底部的导航栏来配合fragment来使用,所以写个笔记供读者阅览。GIF.gif1.简介BottomNavigationView是一个底部导航栏控件,一般和fragment一起使用。2.导包 implementation 'com.android.support:design:27.1.1'但是这个要注意,这个27.1.1的...转载 2020-03-31 17:42:49 · 14658 阅读 · 2 评论 -
RecyclerView进阶:使用ItemTouchHelper实现拖拽和侧滑删除
前言现在RecyclerView的应用越来越广泛了,不同的应用场景需要其作出不同的改变。有时候我们可能需要实现侧滑删除的功能,比如知乎首页的侧滑删除,又或者长按Item进行拖动与其他Item进行位置的交换,但RecyclerView没有提供现成的API供我们操作,所幸SDK提供了ItemTouchHelper这样一个工具类帮助我们快速实现以上功能。不多说别的,我们来介绍一下ItemTouchHe...转载 2020-03-29 21:02:14 · 746 阅读 · 2 评论 -
将背景图和状态栏融合到一起的方法
《第一行代码》将背景图和状态栏融合到一起的方法有很多,这里介绍一种方法,这个功能是Android5.0以及以上的系统支持的,代码如下:if (Build.VERSION.SDK_INT >= 21) { getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | Vie...原创 2020-03-16 17:17:29 · 657 阅读 · 0 评论 -
ImageView的scaleType的属性理解
ImageView的scaleType的属性值有MATRIX,FIT_XY,FIT_START,FIT_END,FIT_CENTER,CENTER,CENTER_CROP,CENTER_INSIDE.1.android:scaleType=“center”保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size时,多出来的部分被截掉。2.android...转载 2020-03-16 16:58:33 · 126 阅读 · 0 评论 -
Activity各种情况下的生命周期
Situation1:正常启动: onCreate() → onStart() → onResume();返回健退出: onPause() → onStop() → onDestory(); Situation2:正常启动 : onCreate() ...转载 2020-03-14 22:41:04 · 417 阅读 · 0 评论 -
华为全系列远程真机免费调测插件之DevEco IDE
给大伙推荐一款特别好用又免费的工具,能解决你以下问题。1.想在最新华为旗舰手机上调试应用而手头没有;2.华为手机型号众多,刚好遇到一个bug需要调试却发现没有这款真机;3.业务提供远程真机的服务要收费但是华为手机型号不全。DevEco IDE是基于Android Studio/IntelliJ插件,准备好Android studio,只需三步即可免费使用华为全系列远程真机免费调测!Dev...转载 2020-03-14 22:24:25 · 1261 阅读 · 0 评论 -
今日头条屏幕适配方案
前言:不管你在布局文件中填写的是什么单位,最后都会被转化为 px,系统就是通过上面的方法,将你在项目中任何地方填写的单位都转换为 px 的。px 转 dp 的公式 dp = px / density,就是根据上面的方法得来的,density 在公式的运算中扮演着至关重要的一步。要看懂下面的内容,还得明白,今日头条的适配方式,今日头条适配方案默认项目中只能以高或宽中的一个作为基准,进行适配,为什...转载 2020-03-14 21:01:58 · 926 阅读 · 0 评论 -
dp的定义原理和dpi,ppi,px,sp之间的区别
扩展知识: 4k是什么意思 1080p和720p是什么意思 百度百科分辨率中最后一段话不明白的,可以参考这里在开始讲解dp前,先来认识一些概念,常见尺寸单位px(pixel 像素):屏幕上的点,一般HVGA代表320x480像素。in(inch 英寸):长度单位。mm(毫米):长度单位。pt(磅):1pt=1/72英寸,用于印刷业,非常简单易用;分辨率“分辨率”被表示成每一个...转载 2020-03-14 13:45:14 · 1971 阅读 · 0 评论 -
获取sharePreferences对象的三种方法
sharePreferences是Android的数据存储之一,它可以通过键值对的方式来存储一些简单的数据,那么它的步骤可以分为三部曲:1.获取sharePreferences对象,并通过sharePreferences.edit()来获取Editor类的对象,可以比作一支笔;2.通过editor类的键值对方式存储数据,如putBoolean(),putString(),putInt()等,这...原创 2020-03-14 12:16:01 · 2116 阅读 · 0 评论 -
Andriod getContext()和getActivity()
MainActivity.this:表示MainActivity对象,一般用在内部类中指示外面的this,如果在内部类直接用this,指示的是内部类本身。因为MainActivity继承Activity,而Activity继承Context,所以它也可以用来提供Activity Contex;this:表示当前对象;一般而言,在哪个类中调用,就是指向该对象。getContext():这个是V...原创 2020-03-14 12:10:04 · 1283 阅读 · 0 评论 -
@android, ?attr/ 和 ?android 的区别
Android中 @和?区别以及?attr/**与@style/**等的区别:https://blog.csdn.net/xx326664162/article/details/64125654?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task前...转载 2020-03-13 23:17:17 · 721 阅读 · 0 评论 -
Android 系统各版本新特性总结
Android 4.0Space 留白 PopupMenu GlidLayout 网格布局Android 5.0MaterialDesign设计风格 Material Theme Meterial Dialog CardView RecyclerView SwipeRefreshLayout Toolbar RippleDrawable 视图的水波纹效果 android ...转载 2020-03-13 23:11:50 · 755 阅读 · 0 评论 -
Android的ScrollView和HorizontalScrollView
理论部分:https://blog.csdn.net/scyatcs/article/details/79425851、ScrollView和HorizontalScrollView是为控件或者布局添加滚动条2、上述两个控件只能有一个孩子,但是它并不是传统意义上的容器3、上述两个控件可以互相嵌套4、滚动条的位置现在的实验结果是:可以由layout_width和layout_height设...转载 2020-03-13 22:48:56 · 715 阅读 · 0 评论 -
Android Pie不支持http请求的解决方案
相信很多在android8.0之前很正常,跑到p上数据都无法加载出来,忽然就懵逼了,因为google在android p为了安全起见,已经明确规定禁止http协议额,但是之前很多接口都是http协议啊,怎么解决呢? 下面介绍四种方法: 1.使用https,当然这是最好的解决方式,也是比较复杂...原创 2020-03-13 20:30:25 · 301 阅读 · 0 评论 -
常用图标素材分享网站
1. FontAwesome (墨刀内置图标库):http://fortawesome.github.io/Font-Awesome/icons/2. Ionicons(iOS/Android系统图标):http://ionicons.com/3. The Noun Project(标志牌图标):http://thenounproject.com/4. Icon Finder (图标搜索站)...转载 2020-03-12 21:36:35 · 272 阅读 · 0 评论 -
Android 依赖报错Version 28 (intended for Android Pie and below) is the last version of the legacy
Version 28 (intended for Android Pie and below) is the last version of the legacy support library, so we recommend that you migrate to AndroidX libraries when using Android Q and moving forward. The I...原创 2020-03-11 20:09:44 · 22817 阅读 · 3 评论 -
Android中的编译版本、最小版本和目标版本
compiledSdkVersion: 编译SDK版本。是将要编译APP的平台版本. 默认情况下它应该设置为SDK中最新的Android可用版本. 我们依然可以编译APP来支持更早的版本, 但是设置它为最新版本让我们可以使用新功能并优化APP使其在最新版本上拥有更好的用户体验.minSdkVersion: 最小版本。它表示APP可以支持的Android SDK的最早版本. 意为小于该版本的And...原创 2020-03-11 18:09:18 · 1985 阅读 · 0 评论 -
Android常用依赖
//retrofit implementation 'com.squareup.retrofit2:retrofit:2.3.0'//rxjava implementation 'io.reactivex.rxjava2:rxjava:2.1.1'//rxandroid implementation 'io.reactivex.rxjava2:rxandroid:2.0...转载 2020-03-11 14:52:48 · 184 阅读 · 0 评论 -
Android Studio AIDL创建案例(解决自动生成java问题)
AIDL创建新建Aidldemo项目选中APP-右键-new-AIDL-AIDL file 会出现一个aidl目录,但是注意此时还没有生成对应的java文件,如下图所示 点击Build-Clean Project(Rebuild 也可以),aidl对应的java文件就会出现了 写个加法计算器更改aidl目录下的aidl文件如下:interface IAdditionSe...转载 2020-01-21 14:04:14 · 939 阅读 · 0 评论 -
Android drawable微技巧,你所不知道的drawable的那些细节
话说微技巧这个词也是我自己发明的,因为drawable这个东西相信大家天天都在使用,每个人都再熟悉不过了,之所以叫微技巧就是对于这个我们再熟悉不过的技术,可能还有一些你所不知道的细节,那今天我们就来一起探究一下这些微小的细节吧。大家都知道,在Android项目当中,drawable文件夹都是用来放置图片资源的,不管是jpg、png、还是9.png,都可以放在这里。除此之外,还有像selecto...转载 2020-01-15 11:36:46 · 243 阅读 · 0 评论 -
Android适配——drawable和values的加载规则
Google搞了一大套 dip、sp、mdpi、hdpi、xhdpi之类的这些东西,简单说来,就是为了让我们轻松实现“与设备密度无关的视觉大小一致性”,这里需要明确的“视觉大小一致性”,就是说无论是在手机、低分辨率平板、高分辨率平板上,这个控件或者图片在物理尺寸上都是一样的。这里我们借 @雨打萍 的一张图片来看看: (出处: http://blog.csdn.net/xiebudong/ar...转载 2020-01-15 11:35:31 · 788 阅读 · 0 评论