安卓
文章平均质量分 77
「已注销」
安卓开发,两年经验
展开
-
安卓的模板设计模式
介绍下模板设计模式,由于每一个activty都有共同性,都有加载布局oncreateview,和findviewbyid,所以可以对每一个activty进行提取,类似于java中的继承,模板的概念大概如此,下面上代码:1.首先创建一个java一个类baseactivty:public abstract class BaseActivity extends AppCompatActiv原创 2017-11-08 09:22:42 · 230 阅读 · 0 评论 -
安卓面试
一、自定义view的流程记清楚函数调用的顺序才能准确地进行调用。根据调用链,可将整个绘制过程分为三部分:Measure - Layout - Draw一、定义自定义View的类。 为了创建点击可切换的形状的自定义View,我们继承View,编写构造方法。实现三个构造方法,最终调用三个参数的构造方法。public class CustomView exte原创 2017-12-01 00:12:49 · 223 阅读 · 0 评论 -
RadioButton 如何做到页面的显示和切换
RadioButton是一个按钮,是一组按钮,它的作用是用来切换的,在实际的项目中,我们经常都是RadioButton和RadioGroup一起配合使用。RadioGroup是单选组合框,可以容纳多个RadioButton的容器。在没有RadioGroup的情况下,RadioButton可以全部都选中;当多个RadioButton被RadioGroup包含的情况下,RadioButton只可以原创 2017-12-09 13:37:52 · 3758 阅读 · 0 评论 -
安卓布局 viewpager+tablelayout+fragment
在谷歌发布Android Design Support Library之前,app底部tab布局的实现方法就有很多种,其中有RadioGroup+FrameLayout、TabHost+Fragment、FragmentPagerAdapter+ViewPager等方法,这些方法我具体使用过RadioGroup和Framlayout联用,通过RadioGroup的点击事件来做Framlayout中原创 2017-12-09 18:35:26 · 1359 阅读 · 0 评论 -
安卓 DrawLayout侧滑
DrawerLayout顾名思义就是一个管理布局的。使用方式可以与其它的布局类类似。DrawerLayout带有滑动的功能。只要按照drawerLayout的规定布局方式写完布局,就能有侧滑的效果。直接将DrawerLayout作为根布局,然后其内部 第一个View为内容区域 第二个View为左侧菜单 第三个View为右侧侧滑菜单 当前第三个是可选的。注意这个属性android:la原创 2017-12-09 19:04:54 · 352 阅读 · 0 评论 -
安卓 三方百度地图
获取SHA1值,首先我们如果使用cmd命令行的话,需要确定自己java的sdk已经安装,并且bin目录已经在path路径中配置好,否则无法通过dos命令来查看SHA1安全码;如何输入呢?1.Win + R键 或者电脑左下角点击 开始->运行 输入cmd点击确定进入控制台2.在命令提示符中输入“cd .android”(中间有个空格),这一步的操作前提是你的JAVA_HOME 的环境变原创 2017-11-22 11:29:43 · 208 阅读 · 0 评论 -
索引获取本地音乐,包括建立contenprider提供方和获取方,以及如何获取本地音乐
首先我们的引入安卓的四大组件之一的Contentprovider,内容提供者原创 2017-11-06 18:35:09 · 462 阅读 · 0 评论 -
安卓 沉浸式布局
我使用过得很简单哦哦如果你在一个包含 DrawerLayout 的界面中使用,你需要在布局文件中为 DrawerLayout 添加 android:fitsSystemWindows="true" 使用在 build.gradle 文件中添加依赖, StatusBarUtil 已经发布在 JCenter:compile 'com.jaeger.statusbar原创 2017-12-09 19:57:48 · 298 阅读 · 0 评论 -
安卓三方 极光推送
打开腾讯体育,或者qq,或者新闻的时候,还没完全打开就收到了一条推送,这个推送是如何实现的,简单介绍下极光推送。1.首先登录点击打开链接,进入开发者服务,极光推送。现在,关键就是要下载三方库,有了三方库,sdk,我们才能把它的代码整合到自己的工程中,让自己的工程具备推送功能就行了。2.官方提供了Demo ,在3分钟快速集成SDK文档里面,可以下载,如果不了解极光推送,可以吧官方的Demo下载下来运原创 2017-11-22 17:11:35 · 520 阅读 · 0 评论 -
安卓 列表listview
当内容超过屏幕大小的时候,我们需要让屏幕容纳足够的展示,所以我们引入了一个控件,可滑动的控件,当然这里可以使用scorlview,scorlview里面只有有一个孩子,只能放一个布局,不过现在介绍一种专用的列表展示的view,listview。下面看如何使用1.listview在xml中设置非常简单,只需设置一下宽和高。只有一个listviewxml version="1.0" enc原创 2017-11-22 19:23:34 · 618 阅读 · 0 评论 -
安卓 动画帧动画基础动画
动画效果是应用在什么地方呢?帧动画它的一个特色是多张图片组在一起,这就是帧动画,它是利用图片渐次改变,一般有十多帧,也就是十多张,实现一个动态的效果。FrameAnimation,看具体如何实现的一、首先我们需要找到图,这些图UI,都会为你准备好,然后导入R文件的drawable文件夹,这样有了图以后,我们就可以进行展示的资源了,但是现在虽然有图了,帧动画还是图片还是必须设置能显示图片的控件上原创 2017-12-02 18:50:36 · 198 阅读 · 0 评论 -
安卓 补间动画代码添加
补间动画的时候有一个差值器,这个就是可以控制它的速度的问题,插值器。首先要了解为什么需要插值器,因为在补间动画中,我们一般只定义关键帧(首帧或尾帧),然后由系统自动生成中间帧,生成中间帧的这个过程可以成为“插值”。插值器的作用是告诉动画某个属性(比如颜色的渐变)如何随时间变化 。下面是几种常见的插值器:当然还有可以在补间动画中设置监听代码 ani= AnimationUtils.loadA原创 2017-12-03 00:14:55 · 230 阅读 · 0 评论 -
安卓 属性动画
属性动画(Property) 控制属性来实现动画。特点:最为强大的动画,弥补了补间动画的缺点,实现位置+视觉的变化。并且可以自定义插值器,实现各种效果,真正的修改了自己的属性:看代码1.首先建一个animtor文件xml version="1.0" encoding="utf-8"?>set xmlns:android="http://schemas.android.com/apk/原创 2017-12-04 21:55:55 · 207 阅读 · 0 评论 -
安卓 产品体验
误区一:产品体验就是写自己的感受经常有同学自己认为或者曾经听别人说:“产品体验报告嘛,其实就是把你在体验产品中的感受写出出来就可以了。”NO!!!其实这个是产品体验报告的第一大误区。因为如果你只是作为一个单一的样本去谈感受,至少在统计学上,你的体验和感受都没有任何意义。所以产品体验报告实际上不是回答「我感觉怎么样」,而是「为什么我会有这样的感觉」和「我应该怎么看原创 2017-12-04 22:10:30 · 207 阅读 · 0 评论 -
安卓布局 Recycleview
RecyclerView是Google在API 21下support.V7包里的控件,用来替代ListView。一、使用RecycleView的前提条件 想使用RecycleView,一定要在build.gradle中引入compile 'com.android.support:recyclerview-v7:24.0.0'依赖。就是必须导入v7包。原创 2017-11-25 14:57:19 · 395 阅读 · 0 评论 -
Recycleview 多布局添加和cardview使用
CardView是Android 5.0系统引入的控件,相当于FragmentLayout布局控件然后添加圆角及阴影的效果;CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为一种容器使用。CardView应该被使用在显示层次性的内容时;在显示列表或网格时更应该被选择,因为这些边缘可以使得用户更容易去区分这些内容。 使用地方:ListVi原创 2017-11-25 20:09:14 · 493 阅读 · 0 评论 -
安卓 Recycleview的点击事件
在为RecycleView设置点击事件时,发现RecycleView没有像ListView那样有setOnItemClickListener的方法,需要自己来实现。在这里我们选择了在绑定数据以后对itemview进行监听,有hoder就可以拿到view了通过这个方法holder.itemView; View view=holder.itemView; view.setOnClickLi原创 2017-11-25 21:12:49 · 614 阅读 · 0 评论 -
RecycleView添加下拉刷新、上拉加载更多
在google的android.support.v4包中,提供一个SwipeRefreshLayout方法, 用于实现下拉刷新,实现的过程也非常简单, 那我们先来看一下SwipeRefreshLayout是什么东西,其实从名字上来看,它就是一个刷新布局,我们来看它的继承结构图:从上面的继承结构可以看出, 它继承于:ViewGroup. 而我们常见的LinearLayout, GridLayou原创 2017-11-26 17:23:02 · 592 阅读 · 0 评论 -
面试
一、Static关键字什么意思?1、在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份。2、用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static成员。(静态方法不再是针对于某个对象调用,所以不能访问非静态成员)原创 2017-11-30 23:25:14 · 250 阅读 · 0 评论 -
安卓的打包发布
打包的过程是非常简单的,为什么要打包呢?一个是为了版本更新,一个是为了防止盗版..这个时候生成签名打包,更一层次的保护,同时签名的时候可以对类名进行混淆,改变类名,你完全看不懂了,拿到代表也没用了。下面看签名一、签名核心是要生成一个.jsk文件。1.在build中选择Generate Signed APK;然后就是填参数了Key store path:进去第一个填的参数是Key sto原创 2017-11-21 17:52:39 · 364 阅读 · 0 评论 -
app的引导页面的使用
在app里面知道,一般第一次安app或者app做了版本更新的时候这个时候会出现引导页,这个时候引导页会对面进行了一些介绍,使用功能什么的,在下一次进入的时候就不会再出现这个页面,为了实现这个我们需要使用到共享参数.引导页一般也就三个页面或者什么的,下面看代码。我们需要把以前登录的状态进行保留,如何保留,保留在哪里合适呢Sharedpreferences这个类简单介绍这个类:网上搜的如果是And原创 2017-11-08 11:52:19 · 595 阅读 · 0 评论 -
关于app的logo广告页的制作
今天来介绍下一个app的第一个页面广告页,广告页是app的第一个页面。原创 2017-11-08 09:13:08 · 824 阅读 · 0 评论 -
安卓自定义view
自定义view是个比较困难的东西,涉及的东西很多原创 2017-11-08 15:48:45 · 171 阅读 · 0 评论 -
自定义view运动
前面已经自定义好了view现在让这个定义的控件动起来,所以在这个继承了View的类中重新写了个方法,同时利用线程进行操作,在里面有一个while循环();小于400时会一直动,同时不断向主线程发handler进行修改这个,handler接收到了之后进行重绘调用这个方法 invalidate();Handler handler=new Handler(){ @Override pub原创 2017-11-08 18:45:42 · 185 阅读 · 0 评论 -
用viewpager制作引导页
前面通过共享参数已经能够顺利的从广告页跳转到引导页,现在到了引导页,如何对引导页进行布局呢?引导页一般有三张,利用到了一个传统成熟的控件Viewpager,它在v4包里面,v4包可以保证低版本的手机也可以使用这个控价,兼容性更强。 首先来看下布局layout xml version="1.0" encoding="utf-8"?>RelativeLayout xmlns原创 2017-11-09 09:24:46 · 234 阅读 · 0 评论 -
关于安卓图片的处理
首先总结安卓中的棘手问题:1.手势2.ANR3.只能在主线程修改UI,4.点击冲突/滑动冲突,解决方案干掉其中一个(事件分发)5.内存泄漏(流没关,socket没关,图片处理,集合中放着太多无用对象OOM),6.屏幕适配7.软件盘(华为例子聊天按键),那么图片在安卓触发的问题是什么那,那么就是内存溢出。如何解决这个问题呢?1.请注意目前在安卓中很少把图片放在drawable中,因为安卓开始运行原创 2017-11-09 15:54:34 · 225 阅读 · 0 评论 -
图片处理Lrucache 缓存防止OOM
刚才介绍了picsso框架,picasso可以放在任意类里面,只要你有context对象,可以处理图片压缩裁剪,线程,网络上也可加载,但是目前除了一个加载高清大图容易出现OOM,还有一种情况就是加载了大量的小图,同样可以出现OOM,现在要说到另一个方面缓存用来解决这个问题。无数个小图片。1.bitmap的特点:bitmap不会被gc回收,这个时候释放资源如何释放呢?bitmap.recyc原创 2017-11-09 17:34:00 · 294 阅读 · 0 评论 -
安卓弹框介绍
介绍一下安卓的弹框,弹框它不属于布局,而是靠代码添加进去,所有的弹框都需要context,因为我们要知道每个弹框是弹到那个地方的,所有的弹框都符合构建者模式第一个我们看下弹框里边最简单的一个Toast。1.Toast:吐司不会阻挡用户操作,然而Toast也会有一定问题,比如用户在点击的时候点击了一下,弹出了一个Toast,点5下,就弹了5下,这样就需要处理了,因为可能用户手抖。这个就是Toas原创 2017-11-09 18:37:15 · 386 阅读 · 0 评论 -
关于安卓的通知栏 NotificationCompat
安卓的通知栏是属于弹框的兄弟,这个不是我们自己布局咋样弄上去的,它是系统的一个api添加上去的,有什么作用呢?比如聊天,推送,三个音乐播放等 首先第一步创一个新的activty。NotifictionActivity1.首先创建一个activty,然后将里面的按钮找到一个Button。public class NotifictionActivity extends AppCompatA原创 2017-11-18 13:43:37 · 2390 阅读 · 0 评论 -
安卓 四大组件之一 广播 BroadcastReceiver
一. 广播作为四大组件之一,组件有什么特色呢?第一组件都要在清单进行注册,第二个组件间的通信都是intent在管理第三个需要继承原始类。BroaderRecevier(负责通信).一种通讯方式 二.适用的场景主要有哪些呢?1.是同一app具有多个进程不同组件之间的消息通信;2.是不同app之间的组件的通信3.Andriod系统在特定情况下与app之间消息的通信不适宜用广播的场景:1.同原创 2017-11-18 19:57:37 · 293 阅读 · 0 评论 -
广播的发送 和 广播的分类
刚才介绍了广播的接收,现在介绍下广播的发送,广播的类型有如下几种:1.系统广播(wife,开机,电量,这些都是发广播的)2.普通广播(intent开发者自己定义)sendBrodacast(intent)就行首先我们来看一下发送端的acitvity1.这是它的xml文件,里面只有一个Buttonxml version="1.0" encoding="utf-8"?>LinearLayou原创 2017-11-19 08:12:29 · 555 阅读 · 0 评论 -
安卓网络请求 httpconnection
我们有时候的数据是来自于网络,不是所有的东西都在手机本地的,比如音乐的数据,我们需要网上拿到数据,歌曲列表就是 ,歌曲列表里面需要包含什么呢?歌手,歌曲名字,歌曲网址,图片等,步骤就是1.拿到数据2.解析(因为拿到的数据有很多个,比如歌曲有10首等,需要解析成一首一首的,解析成一个对象,或者集合,然后进行展示,列表展示, ,就在界面呈现了)。2.在进行网络请求的时候需要三个东西,1.请求接口(原创 2017-11-19 19:29:15 · 651 阅读 · 0 评论 -
Okhttp网络请求post方式 加Json解析
前面已经进行了okhttp的get的请求,现在进行okhttp的post请求,get请求快,方便,不安全,post请求的参数通过流传递过去的,下面看post是如何进行请求的。1.首先创建一个请求客户端OkHttpClient okHttpClient = new OkHttpClient();2.创建请求对象之前,需要创建一下请求的参数FormBody,里面采用键值对的方式,就是把ur原创 2017-11-19 23:53:20 · 2035 阅读 · 0 评论 -
安卓联网框架 Retrofit
Retrofit这个框架来自于square公司和okhttp是一个公司,这个也是一个bulider链式模式,一种构建者模式,okhttp可以通过get或者post对服务器进行请求,请求到数据,而Retrofit是封装了网址,注解的方式来做的,同时做了解析和发送handler,这个时候我们就拿到了一个对象,更加方便。因此在使用它的时候需要导三个包okhttp,josn,和Retrofit.下面来看它原创 2017-11-19 18:38:18 · 411 阅读 · 0 评论 -
关于fragment和activty的通信个人的总结浅谈
fragment不能使用构造传参数,因为fragment不是普通的类,不能通过new对象的方式,将activty的参数传递给fragment,因为它是一个和activty一样有生命周期的,不是一般的类,fragment的构造是一个无参构造,new一个有参的构造也无法使用。 关于fragement和activty的通信就有以下两种方式,首先activty向fragment传值可以通过原创 2017-11-05 18:23:57 · 306 阅读 · 0 评论 -
关于sqlite的使用介绍
1.使用和mysql相似,有四个步骤:1.创建库2.链接登录库3.创建表4.增删改查,主要有两个类一个是SQLiteOpenHelper,这是一个抽象类,(主要操作1.创建库2.链接登录库)需要自己写一个子类来继承重写里面的两个方法,和一个构造。这是构造 第一个参数Context:是一个传进来的。第二个是一个:数据库的名字第三个工厂直接没有null,第四个版本:数据库版本1pu原创 2017-11-06 17:11:33 · 338 阅读 · 0 评论 -
安卓 版本更新
我们使用的app等总是不断的要更新换代,这样才能更的上用户的需求,自身的发展,每一款app都必须要有这个功能就是版本跟新,那么这个功能是如何做到的呢?主要包括有以下几个步骤:主要包括开发中版本的设置,如何检测本程序的版本,版本的更新判断和显示,新版本程序的安装。一、首先来介绍下版本的基本知识。有版本名字+版本号1.版本号(versioncode)是一个integer的值,一般大家在发布自己原创 2017-11-21 16:37:10 · 654 阅读 · 0 评论 -
Git 使用总结
版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制。简单的说就是这个版本控制系统可以记录文件内容的变化 采用版本控制系统 (VCS)是个明智的选择。有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。你可以原创 2017-12-06 09:49:26 · 215 阅读 · 0 评论