android
文章平均质量分 50
hello_1s
这个作者很懒,什么都没留下…
展开
-
高德地图定位、添加定位图标、连线(二)
定位之后想在地图中显示,那么就要在添加一个jar包,该jar包中有地图的控件一、添加定位标记1、在build.gradle中添加compile files('libs/AMap_3DMap_V3.3.1_20160419.jar')使用的是3D的,因为使用3D的是删格化的,加载起来比较快2、在布局文件中添加控件<com.amap.api.maps.MapView android:id="@原创 2016-06-28 14:44:48 · 10326 阅读 · 0 评论 -
RecyclerView使用(二)多种Item布局、添加点击事件
一、RecyclerView的多种Item布局 getItemViewType()方法同ListView中的一样,在Item有多种布局时使用。在onCreateViewHolder(ViewGroup parent, int viewType) 中的第二个参数就是Item的类型,在onBindViewHolder(final ListViewAdapter.ListViewHold原创 2016-06-28 17:42:17 · 1922 阅读 · 0 评论 -
activity详解(一)
一、activity生命周期不多说先上图从图中可以看到activity有七大生命周期,接下来开始介绍:public class ActivityDemo extends AppCompatActivity { /** * activity被创建时执行的方法,并绑定XML文件;也可以做数据的恢复。 * @param savedInstanceState */原创 2016-07-11 14:40:32 · 653 阅读 · 0 评论 -
Activity详解(二)
二、Activity交互生命周期执行过程接下来介绍两种情况,均以ActivityA和ActivityB为例,简称A、B1、A、B均为正常Activity时1)启动A界面时 A.onCreate–>A.onStart–>A.onResume2)A按返回键时 A.onPause–>A.onStop–>A.onDestory3)跳到B界面时 A.onPause–>B.onCreate–>B.onSt原创 2016-07-11 15:01:36 · 321 阅读 · 0 评论 -
Activity详解(三)
三、Activity四种启动模式1、standard 标准模式,每次启动都会创建Activity,并放到任务栈中。2、singleTop 栈顶模式,启动Activity时先判断该Activity是否存在并在栈顶,如果满足条件则重用该Activity否则重新创建。3、singleTask 单任务模式,在启动Activity时首先判断任务栈中是否存在该Activity,若果存在,就将该Activi原创 2016-07-11 15:50:25 · 659 阅读 · 0 评论 -
RxAndroid
几个概念在开始说代码之前,先澄清几个概念。RxJava最核心的东西就是Observable和Observer。Observable会发出数据,而与之相对的Observer则会通过订阅Observable来进行观察。Observer可以在Observable发出数据、报错或者声明没有数据可以发送时进行相应的操作。这三个操作被封装在Observer接口中,相应的方法为onNext(),onError()转载 2016-07-11 17:26:14 · 354 阅读 · 0 评论 -
Gson解析和json解析
json数据的简单介绍:json数据是一种轻量级的数据交换格式,一键值对的形式表现的。用[]括起来的可以理解为数组、用{}括起来的可以理解为对象。例如://对象{ "id":123, "username":"ws", "password":"admin", "phone":"15333333333" } //数组[{ "id":123, "username":"ws",原创 2016-07-22 10:56:23 · 536 阅读 · 0 评论 -
多张图片合成加载动画
1、自定义ProgressDialogpublic class MyProgressDialog extends ProgressDialog { private int procressLoadRes; private ImageView mImageView; private AnimationDrawable animationDrawable; public M原创 2016-07-12 15:40:24 · 1155 阅读 · 0 评论 -
图片处理工具
import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import android.graphics.Bitmap;import andro转载 2016-07-12 15:49:51 · 317 阅读 · 0 评论 -
Toolbar使用详解
1、使用toolbar要注意去掉原有的actionbar否则会报异常,可以在style中直接进行修改(style.xml) <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPri原创 2016-07-13 10:18:57 · 1166 阅读 · 0 评论 -
侧滑菜单NavigationView和SlidingMenu的使用
一、NavigationView使用1、NavigationView是android5.0推出的,所以要在相应Module的build.gradle中添加依赖compile 'com.android.support:design:23.4.0'2、xml文件<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.Drawer原创 2016-07-13 11:20:38 · 2321 阅读 · 0 评论 -
自定义对话框
1、定义对话框的布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_pare原创 2016-06-15 16:27:09 · 422 阅读 · 0 评论 -
android studio下生成SHA1
1、在Terminal窗口下输入命令 先将目录切换到.android文件夹(当前目录为/Users/用户名(ws)) cd .android2、通过如下命令可得到SHA1 keytool -v -list -keystore debug.keystore输入该命令后会让你输入密码,但是当你敲击键盘时是没有变化的,但是你已经输入了,输入完毕直接回车即可。3、介绍几个该过程中要用到的命令1原创 2016-06-15 18:01:46 · 417 阅读 · 0 评论 -
高德地图定位、添加定位图标、连线(一)
一、定位 若只要定位功能而不需要显示出地图,只需添加AMap_Location_V2.4.1_20160414.jar一个jar包即可; 1、AndroidMainfests.xml文件1)添加服务 <service android:name="com.amap.api.location.APSService" />2)添加权限<!-- 用于进行网络定位 --> <uses-permis原创 2016-06-16 09:40:57 · 9073 阅读 · 0 评论 -
ListView长按弹出菜单项
要使用listview的setOnCreateContextMenuListener监听,并重写onContextItemSelected方法,共同完成弹出菜单项,点击菜单项做相应的操作。1、为ListView添加长按弹出菜单项事件listView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {原创 2016-07-06 11:19:44 · 2489 阅读 · 1 评论 -
Handler的相关知识
首先要了解一个简单的概念和handler的机制:1、基本概念Looper:消息泵,管理消息队列的。 MessageQueue:消息队列,管理消息,先进先出、后进后出。 Message:消息,要发送的内容。2、handler工作原理(以子线程向主线程发消息为例) 首先要明确消息是由谁到谁,要在接收消息的一方new Handler(),并重写handleMessage()方法;在发消息的一方用ha原创 2016-07-08 14:55:59 · 390 阅读 · 0 评论 -
Service简介与生命周期讲解(一)
一、Service的介绍Service 是一个可以在后台执行长时间运行操作而不使用用户界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。 此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可以处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序交互,而所有这一切均可在后台进行。服务分两种启动和绑定:1、启动服务:原创 2016-08-03 16:19:48 · 3574 阅读 · 0 评论 -
Service的子类IntentService(三)
1、简介它使用工作线程逐一处理所有启动请求。如果不要求服务同时处理多个请求,这是最好的选择。只需实现 onHandleIntent() 方法即可,该方法会接收每个启动请求的 Intent,一个一个的在后台执行。2、IntentService与Service之间的不同 1)Service要处理耗时操作需要自己启动一个工作线程,如果启动了多个工作线程来处理相关事务的话,给线程之间不能很好的控制;而原创 2016-08-03 18:46:42 · 495 阅读 · 0 评论 -
android中数据的存储方式(Internal Storage)
二、Internal Storage(内部存储)存储应用私有的数据在设备的内存中,其他应用不能访问,当应用卸载,数据也被移除。1、向内存中写数据的步骤 1)调用openFileOutput(文件名称,文件的操作模式)方法,返回FileOutputStream.对象。 2)使用write()方法向文件中写数据 3)使用close()方法关闭流2、通过小例子来理解一下publi原创 2016-08-04 11:15:57 · 1242 阅读 · 0 评论 -
android中数据的存储方式(SQLite)
四、SQLite数据库存储以该种方式存储的数据也不能被其他的应用访问。接下来我们就来看看是如何实现的吧1、写一个类继承SQLiteOpenHelper,并重写它的onCreate()方法和onUpgrade()方法public class MySqlDb extends SQLiteOpenHelper { private static final String DB_NAME = "mydb原创 2016-08-04 12:17:17 · 366 阅读 · 0 评论 -
CountDownTimer手机短信计时器的使用
这个使用起来还是挺方便的,相比Handler而言,所以个人比较推荐使用这个。本文主要实现了倒计时的一个效果,具体发短信的代码没有实现。觉得使用CountDownTimer时要注意两点: 1、单位都是以毫秒为单位的 2、一定不要忘了start,否则没有效果接下来上代码了,一看就懂了 嘿嘿: //第一个参数为倒计时的时间,第二个参数为时间间隔(均以毫秒为单位) CountD原创 2016-07-21 17:57:26 · 601 阅读 · 0 评论 -
BadgeView微信消息数字提醒
目前这个应用十分火,所以也琢磨了一下,可以自定义去实现,但是后来发现了个开源的东东,挺好用的,所以就拿来用了。使用起来特别简单只需要四步就能搞定了:**1、找到要显示数字的控件2、实例化BadgeView,并设置参数3、设置BadgeView的相关属性4、显示BadgeView**//1、找到控件,mLinearLayout = (LinearLayout) findViewById(R.id.l原创 2016-07-21 18:34:36 · 1396 阅读 · 0 评论 -
Service与Activity之间的通讯(二)
开启服务是不能使Service和Activity之间通讯的,所以只能通过绑定服务完成。有三种方式来创建绑定服务,接下来一个一个的介绍:一、扩展 Binder 类此方法只有在客户端和服务位于同一应用和进程内这一最常见的情况下方才有效。1、在服务中,创建一个可满足下列任一要求的 Binder 实例: 1)包含客户端可调用的公共方法 2)返回当前 Service 实例,其中包含客户端可调用的原创 2016-08-03 17:33:49 · 379 阅读 · 0 评论 -
时间选择器DatePicker与TimePicker
使用时间选择器总比一个个的手动输入时间的用户体验好,实际中的应用也挺多的。先看看张什么样吧:以上两种是以对话框的方式显示的,看着也比较舒服,还有一种是直接粘贴在界面上的(图略了哈)接下来分别介绍:public class MainActivity extends AppCompatActivity { private DatePicker mDatePicker; private Ti原创 2016-08-16 17:05:21 · 818 阅读 · 0 评论 -
ListView的多套布局
先看看效果图,手画的哈有点丑嘿嘿大概就是这个样式,我就拿两种布局的为例,掌握住重点,多少都没有问题嘿嘿!1、简单的理解就是有几种不同的布局就要有几个相应的xml文件,所以先上布局文件喽:layout_item_type1:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.andro原创 2016-08-01 15:36:36 · 637 阅读 · 0 评论 -
RecyclerView使用(一)
RecyclerView是android5.0之后出现的为了替代ListView, GrideView等,还可以实现瀑布流效果。提示1、基础介绍 1)使用LayoutManager来控制RecyclerView的显示风格是ListView还是GrideView或是瀑布流。 2)ItemDecoration表示的是条目之间的间隔。 3)ItemAnimator表示增加、删除item的原创 2016-06-28 16:54:04 · 504 阅读 · 0 评论 -
Retrofit使用详解(学习资料提供)
先提供一些我认为比较好的几个学习Retrofit的网址:1:先提供一个可以将json直接生成java实体类的东东吧:http://www.jsonschema2pojo.org/2:接下来就是一些资料了,结合着去学习:1)https://github.com/hehonghui/android-tech-frontier/tree/master/issue-7/Retrofit%E5%BC%80%E原创 2016-08-02 17:05:12 · 324 阅读 · 0 评论 -
android面试题
1、屏幕适配1)首先了解几个重要的概念 A、屏幕尺寸:屏幕对角线的长度,1英寸=2.54cm B、屏幕分辨率:横纵向上像素点数,单位px C、屏幕像素密度:每英寸上像素点的个数,单位dpi,分辨率越高,屏幕像素密度越大 D、dip(dp)、密度无关像素(规定160dp为基准,即1dp=1px、若320dp为1dp=2px)2)解决方案A、支持各种屏幕尺寸 a、原创 2016-08-02 18:02:07 · 304 阅读 · 0 评论 -
自定义图形在drawable文件夹下
很多时候我们会用到自定义的图形,如圆角的按钮,或者给按钮加一个带有颜色的边缘等等。放在res/drawable下,是xml文件1、图形填充颜色:solid<solid android:color="颜色值"/>2、边界的宽度和颜色:stroke<stroke android:width="宽度值" android:color="颜色值"/>3、圆角的大小:corners<corner原创 2016-08-04 15:14:27 · 800 阅读 · 0 评论 -
Android layer-list的属性和使用详解(阴影、边框效果)
layer-list用于多个图层堆叠,可以完成阴影效果<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!--最底层的View--> <item > <shape android:shape="re原创 2016-09-09 10:23:34 · 6096 阅读 · 0 评论 -
QQ、新浪、微信使用友盟第三方登录需注意(5.0之前)
1、先说测试的时候:QQ和微信必须使用正式的包,不能使用debug环境的如果不使用正式的包会出现如下情况:1)微信:点击没有反应,不执行onComplete(我测试时是这样的,具体啥原因我也不知道,又路过的大神帮忙解决一下哈嘿嘿)2)QQ:当QQ提示该应用版本较旧……(错误码为100044)使用android studio打正式包去哪找呢然后将得到的apk文件装到手机中然后测试QQ和微信的登录功能,原创 2016-07-29 15:38:18 · 1557 阅读 · 0 评论 -
ScrollView嵌套ViewPager不显示问题解决方案
1、方案一:给ViewPager设置固定的高度2、方案二:自定义ViewPagerpublic class ChildViewPager extends ViewPager { public ChildViewPager(Context context, AttributeSet attrs) { super(context, attrs); } public C原创 2016-09-05 14:32:02 · 2812 阅读 · 0 评论 -
Git命令速查表
名词master: 默认开发分支 origin: 默认远程版本库 Index / Stage:暂存区 Workspace:工作区 Repository:仓库区(或本地仓库) Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代转载 2016-08-30 18:07:44 · 330 阅读 · 0 评论 -
ViewPager轮播图
目前很多的电商类的APP首页都有这样的轮播图,所以在此提供本人的demo1、先看看它的布局文件这里还是挺简单的,就一个ViewPager和一个LinearLayout,LinearLayout是用来放那些小点的(指示器),这里要给它id这样方便对他进行操作。<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="ht原创 2016-09-01 10:36:05 · 354 阅读 · 0 评论 -
ScrollView返回到顶部效果
好多的时候,需求滑倒某一位置,显示返回顶部的按钮,点击按钮,滑到顶部。但是ScrollView提供的onScrollChanged方法没有向外暴露,所以我们就要重写它。/定义接口public interface ScrollViewListener { void onScrollChanged(ObservableScrollView scrollView, int x, int y, in原创 2016-09-05 14:41:56 · 763 阅读 · 0 评论 -
判断控件是否在屏幕的显示范围内
判断imageView是否在屏幕上显示int width,height;Point p=new Point();getWindowManager().getDefaultDisplay().getSize(p);width=p.x;height=p.y;Rect rect=new Rect(0,0,width,height ); if(imageView.getLocalVisibleRec原创 2016-09-05 19:44:40 · 3583 阅读 · 1 评论 -
android微信支付详解与坑
要想在自己的APP中实现APP支付必须申请开通支付功能,这些按着文档来吧,我还是直接说android中的问题吧。一、签名一定要在开放平台为自己的APP配置正确的包名和签名(签名:将APP打一个正式环境的包,然后在微信开放平台下载签名工具进行签名)。二、打包测试和微信的第三方登录一样,必须要打正式包,不是debug的,来进行测试,这样就没有办法调试了,感觉很不爽。所以提供一个办法来拯救一下嘿嘿:在bu原创 2016-09-23 11:39:14 · 12411 阅读 · 0 评论 -
ButterKnife 8.1.0 入门详解
先不管他怎么用, 我们先把他弄到我们的项目里,自己学的时候费了很大的功夫,现在参考一些大神的文章,加上自己学习遇到的问题来记录一下:1、在project的build.gradle中添加这么一句话//依赖包的定义dependencies { classpath 'com.android.tools.build:gradle:2.2.1' classpath 'com.neenbe原创 2016-10-09 18:16:01 · 3386 阅读 · 0 评论 -
不写代码,快速实现px转换成dp
有很多朋友在实际的工作中,会遇到设计同事给了一张设计图,上面只有px标注的距离和尺寸。产品看到设计稿后,就拿给iOS和Android的开发,说就按这个做。iOS开发可能还好,虽然也有9种屏幕,但那毕竟是两只手数的来的。但是Android开发可能是心中无数只草泥马奔腾 + 一脸懵逼。。其实我们只要把px转换成dp就可以了,两步走:第1步:确认设计稿中的屏幕dpi是多少 第2步:根据dpi,将px值转转载 2016-09-21 09:46:56 · 1781 阅读 · 0 评论 -
自定义圆角带边框ImageView
最近项目改版需要带阴影的圆角矩形,最后只实现了带边框的圆角矩形,阴影需要渐变,由于宝宝经验有限,只能参考被人的实现成了这样的。有路过的大神可以留下脚印,嘿嘿import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Col原创 2016-09-21 10:02:15 · 2844 阅读 · 0 评论