自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 感悟——致即将成为和已经成为程序猿的我们

有的人说对于一个做技术的人来说,与做销售或运营的同学比较,其实需要操心的事情并不多,只要把手上的事情做好就行了,弄清楚需求,拒绝不合理的部分,选择合适的技术实现需求。        对于以上的观点我不敢苟同,一个做技术的人选择合适的技术实现需求这是最基本要求。如果能做到这样,那么你只是一个程序猿。       我认为做技术不能单纯的写代码,你还要对自己的产品有很好的了解,你要知道你

2017-03-30 16:32:14 382

原创 Android 6.0运行时权限理解

前言 谷歌在2015年8月份时候,发布了Android 6.0版本,代号叫做“棉花糖”(Marshmallow ),其中的很大的一部分变化,是在用户权限授权上,或许是感觉之前默认授权的不合理,现在6.0出来,使得用户权限授权变得合理。这可能也是参考IOS系统的,只有在用户需要使用权限的时候,才去授权请求,这样做的目的是提高用户体验,当然,用户感觉好了,受苦的是我们开发人员,原来的规则不适用了,

2016-09-20 11:40:30 496

原创 android 新闻栏目管理(可拖动排序的gridview)

一用到的知识1.GridView的一些内部方法,如:怎么通过触摸的坐标获取对应的position等(这里我采用的是继承GridView控件)2.Android事件分发机制3.位移动画Animation,本DEMO中主要用到:TranslateAnimation  平移动画4.WindowManager的窗口机制,这里的item拖拽等都要设计到这个。二.实现思路1.

2016-08-16 10:47:14 2009 3

原创 Android 振动器 Vibrator的使用

private Vibrator vibrator;取得震动服务的句柄 vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); 或者 vibrator = (Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE);开始震动有两

2016-08-15 12:11:37 684

原创 android Context启动activity

我们知道Android程序中Context分成两种。一种是Activity Context,另一种是Application Context。通过Activity Context来启动另一个程序代码是很简单。代码如下。

2016-08-09 15:53:16 2213

原创 Android 桌面图标右上角显示未读消息数字

背景:       在Android原生系统中,众所周知不支持桌面图标显示未读消息提醒的数字,虽然第三方控件BadgeView可以实现应用内的数字提醒。但对于系统的图标,特别是app的logo图标很难实现数字标志,即使是绘图的方式不断修改,但这种方式天生弊端,实用性很差。但幸运的是,一些强大的手机厂商(小米,三星,索尼)提供了私有的API,但也带来了难度,API的不同就意味着代码量的增加和

2016-07-29 11:48:36 5137

原创 Android 获取android手机信息

//BOARD 主板  String phoneInfo = "BOARD: " + android.os.Build.BOARD;  phoneInfo += ", BOOTLOADER: " + android.os.Build.BOOTLOADER;  //BRAND 运营商  phoneInfo += ", BRAND: " + android.os.Build.BRAND;  phone

2016-07-28 13:35:39 375

原创 android 设置新手引导

我们只做新手引导,一般都是用viewpager或者在页面上覆盖一张半透明的布局来展示,有时需要UI切很多张图片。但有时安卓机器有时对不准指定的按钮。下面我来介绍一款很好用的第三方库MaterialShowcaseView。可以很好的解决上述问题,并且给UI省很多功夫。如何使用?1,由于该项目使用自定义仓库 jitpack 。因此需要配置 Project 目录下的build.gradle

2016-06-28 13:57:42 964

原创 android textview中划线,下划线

关于textview的几个小知识:textView.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG ); //下划线textView.getPaint().setAntiAlias(true);//抗锯齿textview.getPaint().setFlags(Paint. STRIKE_THRU_TEX

2016-05-26 11:23:20 538

原创 JavaScript 基础

JavaScript简介:JavaScript是世界上最流行的编程语言。这门语言适用于HTML和web,更可广泛用于服务器,pc,平板和智能手机设备。JavaScript是脚本语言JavaScript是一种轻量级的编程语言JavaScript是可插入HTML页面的编程代码JavaScript插入HTML页面后可由现代的所有浏览器所执行JavaScript的使用:

2016-05-26 11:19:22 379

原创 android app与h5交互

1,java调用js首先我们从本地加载一个HTML, webview = (WebView) findViewById(R.id.webview); // 启用javascript webview.getSettings().setJavaScriptEnabled(true); // 从assets目录下面的加载html,J

2016-05-20 15:03:51 1796

原创 android webview 全解

最近项目里用到越来越多的webview,

2016-05-19 16:32:40 662

原创 Android Uri结构与代码提取

一、URI与Uri大家可能经常会看到在开发时,怎么有的时候是URI,有的时候是Uri,这是怎么回事?名称如此相像的两个类是有什么区别和联系?1.所属的包不同。URI位置在java.net.URI,显然是Java提供的一个类。而Uri位置在android.net.Uri,是由Android提供的一个类。所以初步可以判断,Uri是URI的“扩展”以适应Android系统的需要。

2016-05-12 18:02:30 1023

原创 android tools小应用

TextView在xml中没有设置任何字符,而是在activity中设置了text。因此为了在ide中预览效果,你必须在xml中为TextView控件设置android:text属性<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"

2016-05-05 16:25:51 368

原创 android listView设置了点击事件 点击无效

一.问题引入ListView控件:给Item设置了点击事件,却没有效果。二.解决方案ListView使用了自定义布局文件,在布局文件中有button等控件时,这些控件获取焦点的级别比listView的item高,所以当点击item时,button等控件会优先获得点击焦点。解决方法就是在布局文件根元素中添加属性: Android:descendantFocusability=

2016-04-26 14:02:42 997

原创 android shape

相信每个做Android开发的人都自己制作过shape,简单,方便,可在用时肯定会遇到过各种各样的bug,下面就说一下小编自己在用shape时遇到过得问题吧。我们在项目中用到过一个蓝色边框,当时也没叫设计切图,觉得自己就能办理,所以就制作了一个shape <stroke android:width="1dp" android:colo

2016-04-22 14:26:10 288

原创 Android dialog标题换行和去应用市场给自己的app评分

今天做了一个弹窗提示去评分时,显示手机已安装的应用市场列表;点击某个应用市场时打开该应用市场自己app详情页,其dialog样式为如下图其特殊就特殊在第一条,按一般看来,我们应该把第一条当做标题来处理,但dialog的settitle()是不能分行的。看代码: Dialog alertDialog = new AlertDialog.Builder(this).setCusto

2016-04-20 18:01:44 1874

原创 Android 返回键的处理

多网友不明白如何在Android平台上捕获Back键的事件,Back键是手机上的后退键,一般的软件不捕获相关信息可能导致你的程序被切换到后台,而回到桌面的尴尬情况,在Android上有两种方法来获取该按钮的事件。  1.直接获取按钮按下事件,此方法兼容Android 1.0到Android 2.1 也是常规方法,直接重写Activity的onKeyDown方法即可,代码如下:@Overri

2016-04-12 10:05:57 1333

原创 Android activity的生命周期

生命周期Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情。例举了 7 个常用的钩子:protected void onCreate(Bundle savedInstanceState)protected void onStart()protected void onResume()protected void onPa

2016-03-28 12:27:35 596

原创 android 中在activity弹出一个对话框,并不会执行onpause生命周期

android 中在activity弹出一个对话框,并不会执行onpause生命周期方法 在实际的应用开发中,我们可能会在onResume中进行网络交互,在网络交互的过程中免不了使用Progressdialog,那么现在问题来了,在我们弹出一个进度对话框的时候如果我们的activity的onpause生命方法得到执行,然后在数据加载完毕,对话框进行消失的时候,activity的onResu

2016-03-28 12:09:40 9062

原创 Android  ExpandableListView

一、ExpandableListView介绍    一个垂直滚动的显示两个级别(Child,Group)列表项的视图,列表项来自ExpandableListAdapter 。组可以单独展开。  1.重要方法      expandGroup(int groupPos) :在分组列表视图中展开一组,      setSelectedGroup(int groupPosition) :

2016-03-21 10:54:22 1097

原创 Android 内存优化实例

下面来看两个内存优化的实例,分别从bitmap和代码两个角度来对内存进行优化。1.bitmap优化bitmap是造成内存占用过度甚至是OOM(out of memory)的最大威胁。下面给出一些使用bitmap的小技巧。1).使用适当分辨率和大小的图片由于android系统在做资源分配的时候会对不同分辨率文件夹下的图片进行缩放来适配相应的分辨率,如果图片的分辨率与资源文件夹分辨率不

2016-03-09 13:55:06 420

原创 Android 常用小知识之break/continue语句

使用break语句可以终止switch语句和终止循环的子语句块,甚至是普通的程序块。关于如何终止switch语句,请参考前面的switch的内容。1.break语句在循环中,经常需要在某种条件出现时,强行终止循环的运行,而不是等到循环的判断条件为false时,这个时候,可以通过break来完成这个功能。break语句通常用在循环语句和开关语句中。例如,前面的章节已经提到的开关语句swi

2016-03-09 10:08:12 2149

原创 android Unable to add window -- token null is not for an application

代码中出现如下错误:android.view.WindowManager$BadTokenException:Unable to add window -- token null is not for anapplication分析:问题在于newAlertDialog.Builder(Context),虽然这里的参数是AlertDialog.Builder(Contextcont

2016-03-01 12:10:08 416

原创 Android Service和Thread的区别

1.服务不是单一的进程。服务没有自己的进程,应用程序可以不同,服务运行在相同的进程中。2.服务不是线程。可以在线程中工作。一.在应用中,如果是长时间的在后台运行,而且不需要交互的情况下,使用服务。同样是在后台运行,不需要交互的情况下,如果只是完成某个任务,之后就不需要运行,而且可能是多个任务,需需要长时间运行的情况下使用线程。二.如果任务占用CPU时间多,资源大的情况下,要使用线程

2016-02-29 10:15:54 400

原创 Android Studio 多渠道打包及 gradlew 命令的基本使用

这里介绍其多渠道打包:1 建立多渠道这里介绍一种简单的,直接as操作:直接上图咯,在项目结构你添加flavor就好了1确定后,项目会自动同步,完成后,渠道就配置好了。当然,也可以直接在gradle脚本里操作:android { productFlavors { dev { manifestPlacehold

2016-02-17 17:24:03 1851

原创 Android中的图像处理

1. 理解  手机上显示的任何界面, 无论是文字,按钮或图片, 都是系统内置的一些API绘制的Graphics(图形,图像)  drawable2. 相关API        Bitmap:   位图,图片在内存中数据对象  .bmp .jpg .png     compress(Format format, int quality, OutputStream os )

2016-02-16 14:42:33 405

原创 android 性能优化

1. 性能相关的两个概念     1). 响应时间          指从用户操作开始到系统给用户以正确反馈的时间          系统处理时间 + 网络传输时间(可能没有) + 展现时间     2). TPS(Transactions Per Second)          每秒处理的事务数, 是系统吞吐量的一个指标2. 什么是性能问题?     响

2016-02-16 14:36:03 350

原创 android 自定义下拉刷新动画效果

今天公司让把官方的下拉刷新动画改一下,自己仔细读pullTorefresh源码,终于发现了蛛丝马迹,现我就自己理解将修改步骤给大家讲解一下。本篇博文要给大家分享的是如何使用修改开源项目PullToRrefresh下拉刷新的动画,来满足我们开发当中特定的需求,我们比较常见的一种下拉刷新样式可能是以下这种:就是下拉列表的时候两个箭头上下翻转,更改日期文本和刷新状态,这种是最普遍的一种模

2016-02-15 14:38:16 2341

原创 Android Can only use lower 16 bits for requestCode

今天项目报了一个这样的bug    java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode原因是原因是RequestCode不能为负值,也不能大于16位bit值65536,这是判断RequestCode的源码@Overridepublic void startActivity

2016-01-11 14:59:21 3361

转载 Android 引导界面制作

项目做完了,做了第一次启动,滑动的引导页了。  然后需求又要改成流行的图层图片引导了。如图:   大家一定也经常见吧,实现当然很简单了。FrameLayout上加一个图层就完了呗。让它点击后消失。 嗯,可是那么多界面,难道所有界面布局都要改吗?改成根元素上再套一层FrameLayout?   这里看过我 DecorView浅析 的童鞋,一定很来感觉。setContentView

2016-01-05 10:21:38 428

原创 Android View的触摸事件机制

1. 触摸事件的基本类型     1). down: 按下     2). move: 移动     3). up: 离开2. 事件对象产生的顺序     1). down-->move-->move-->....-->up     2). 每个事件对象产生后, 都会找到一个消费者来消费处理此事件3. 事件相关API     1). Moti

2015-12-31 14:08:14 649 1

原创 android 实现按住说话功能

今天工作上需要做一个仿微信语音聊天中的按住说话的功能。其实很简单,主要就是利用MediaRecorder实现录音,用MediaPlayer实现播放功能。下面我就具体说一下是怎么实现的。1,首先对按钮的onTouch事件进行监听。mBtnVoice.setText("按住说话"); mBtnVoice.setOnTouchListener(new OnTouchListene

2015-12-30 14:05:26 9399

原创 Android横竖屏切换小结

Android横竖屏切换小结Android横竖屏切换小结总结:1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一

2015-12-15 15:24:10 501

原创 自定义View知识

1. View是什么?     1). View类是所有用来构建用户界面的组件的基类     2). ViewGroup是View的一个子类, 是各种布局的基类,           它是包含其它View或ViewGroup和定义这些孩子布局参数的容器     3). 一个View(ViewGroup)占用屏幕上的一个矩形区域, 它负责界面的绘制和事件处理     4). 手机

2015-12-15 15:22:19 432

原创 Android 内存溢出与内存泄露

1. 定义:      1). 内存溢出: 即为out of memory, 当你要求分配的内存超过了系统给你的内存时, 系统就会抛出out of memory的异常(每个Android能用的内存是有限的)                  比如: 当前应用只剩下4M的空间可用, 但你却加载得到一个需要占用5M空间的图片Bitmap对象, 就会抛出溢出的异常     2). 内存泄露:

2015-12-15 15:20:29 412

原创 Android中的消息机制

1. 消息机制的引入     1. 现在有的问题:          只有在UIThread中才能直接更新界面          很多长时间处理数据的工作(联网)都需要在workerThread中执行, 完成后立即去更新界面     2). 解决线程间通信的问题: 消息机制          Handler+Message           Handler+Message

2015-12-15 15:08:23 490

原创 RAM与ROM

概念RAM(random access memory)即随机存储内存,这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。ROM(Read-Only Memory)即只读内存,是一种只能读出事先所存数据的固态半导体存储器。对比手机中的RAM和ROM分别对应电脑的内存和硬盘,内存负责程序的运行以及数据交换,有了它,电脑中的软件才能运行,并有了进程;而硬盘就是一

2015-12-15 15:02:35 563

原创 android 更新UI的两种方法

Android 更新UI的两种方法——handler和runOnUiThread() 在Android开发过程中,常需要更新界面的UI。而更新UI是要主线程来更新的,即UI线程更新。如果在主线线程之外的线程中直接更新页面显示常会报错。抛出异常:android.view.ViewRoot$CalledFromWrongThreadException: Only the original thre

2015-12-15 12:13:24 513

原创 android Textview 使用之一:伸缩效果

android开发过程中,经常遇到Textview展示不完全的情况。遇到此情况,通常的处理是:方案一,Textview添加android:ellipsize属性,让展示不完的部分使用省略号代替。然后给Textview设置点击事件跳转到另一个Activity让其显示完全。方案二,我们在很多应用中都能看到有向下的箭头或者“查看详情”的字样,点击后他会自动撑开,让TextView

2015-12-01 17:26:04 1046

空空如也

空空如也

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

TA关注的人

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