自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (2)
  • 问答 (8)
  • 收藏
  • 关注

原创 从零开始实现Android自定义手写画板

从零开始实现Android自定义手写画板最近需要实现一个手写签名控件,在搜索多轮后,终于实现了效果,但是一个手写签名,涉及到了自定义View,画板,path等知识发现自己还是有挺多地方不清楚的,下面从零开始实现一个自定义画板,也一个个解释用到的知识点,算是对手写签名用到所需知识的一个总结。手写顾名思义是在屏幕中获取若干不连续的点,然后把这些点连成一条线。1.构造方法里面初始化画布背景、画笔、...

2019-09-06 15:11:20 1061

原创 Android Studio Debug调试技巧

在我们日常开发中,debug是我们必不可少的一种能力,不仅可以帮助我们快速判断程序的错误,且在看源码理解思路的时候也有很大的作用,下面总结Android开发中常用的debug技巧。1.单步运行(快捷键Shift + F7)单步运行是最基本的调试方式,在添加断点之后逐步运行,直到程序结束。如在list第2行处添加断点,程序将继续向下逐步执行,到System.out,程序结束。2.Step ...

2019-08-30 11:11:06 1144 1

原创 java四大引用类型

每种编程语言都有自己操作内存中元素的方式,在C和C++中是通过指针,而在java中是通过引用,在Java中一切都是对象,但我们操作的实际是对象的一个引用,java将引用分为了四种类型,强引用、软引用、弱引用、虚引用。强引用java默认new 对象则为强引用,如StringBuffer buffer = new StringBuffer();上面创建了一个StringBuffer对象,并将...

2019-08-30 11:10:27 388

原创 ArrayList源码分析

什么是ArrayListArrayList 是 java 集合框架中比较常用的数据结构,底层基于数组实现容量大小动态变化。允许 null 的存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。我们知道在java中,数组定义了大小,就不能改变,那么ArrayList是怎么实现动态扩容,扩容的规则...

2019-08-30 11:09:58 105

原创 Android MediaPlayer重复播放问题

项目需要做一个语音的IM功能,语音播放使用MediaPlayer实现,当快速点击语音,一个音频播放没有结束,来回播放时,会重现重复播放的问题,下面说明如何解决。private MediaPlayer mMediaPlayer;private File mLastFile = null;//播放音频统一方法private void doPlay(File mAudioFile) { ...

2019-08-30 11:09:12 8150

原创 多渠道打包,不同的包名

每个Android项目都有唯一的一个applicationId,在商店市场中,此ID用来标识你的应用。当我们需要打不同特性的版本,如普通版,专业版,而这2个版本是需要在手机里共存,这时候我们需要在不同的渠道中修改applicationId,在渠道的配置的方式如下 productFlavors { pro{ applicationId = "com.e...

2019-01-17 15:11:24 523

原创 Android模拟登录V2EX

最近在撸一个V2EX的客户端,官方API缺少一些功能如登录,发帖等,撸完官方API总觉得少了什么,本篇文章主要通过模拟登录实现一些官方没提供API的功能 观察登录传输的数据在网页上登录帐号,通过chrome的调试模式可以看到 ,我们传了4个数据给服务器,分别是帐号,密码,once,和next,once是用来验证是否人为操作的标志,POST时必须带上这个字段,否则会认为是非人为操作而被禁止访问。知

2016-11-21 20:46:29 958

原创 自定义View显示不出来

想封装一个Banner的View,但是ViewPager怎么都显示不出来, public class BannerView extends FrameLayout { private View mRootView; private ViewPager mBannerViewPager; public BannerView(Context context)

2016-08-24 12:57:58 6663 1

原创 Android Studio打造自己的Live Templates

设置位置setting->Editor->Live Templates创建一个Live Templates击点右边的 + 号出现如上界面如我们想把findViewbyid创建一个Live Templates,可以先把代码cv到Template text里,然后用$...$ 替换等待输入的变量替换后如下($cast$

2016-08-24 12:36:28 3289

原创 Android 调用已安装市场,去应用市场评分

最近需求要实现这样一个功能,在某个界面停留40多秒后,弹出一个Dialog,让用户去市场评分,或反馈意见。/** * Created by Administrator on 2016/2/22. * * 用于提示用户评分工具类 */ public class GradeUtil {  private Timer timer; private Context mContex

2016-02-23 16:29:39 1128 3

原创 Android 坐标系

读Android 群英传的笔记,记录一下1.Android坐标系要了解滑动机制,必须先了解Android的坐标系,在Android中将屏幕的左上角作为坐标原点,原点向右是X轴正方向,原点向下是Y轴正方向,如下图所示。在触控事件中,使用getRawX()、getRawY()方法获得是坐标是Android坐标系中的坐标。2.视图坐标系

2016-01-29 17:37:45 612

原创 反方向ProgressBar

xml version="1.0" encoding="utf-8"?>layer-list xmlns:android="http://schemas.android.com/apk/res/android">  背景 gradient是渐变,corners定义的是圆角 --> item android:id="@android:id/background"> sh

2016-01-29 17:35:03 629

原创 View too large to fit into drawing cache when calling getDrawingCache()

用缓存截图的时候出现这个问题,原因是图片太大了,如果把截图的高度减少一点就不会Crash,解决方法如下http://stackoverflow.com/questions/16500379/view-too-large-to-fit-into-drawing-cache-when-calling-getdrawingcache直接画在画布上,不使用缓存

2015-12-31 12:03:16 1347

原创 ViewPager嵌套带ViewPager的Banner,来回切换Banner数据丢失

数据丢失解决方法:其实是Fragment嵌套了Fragment的问题,外层的Fragment是调用NewMainPagerAdapter adapter = new NewMainPagerAdapter(getFragmentManager(), viewpagerFragmentList, mTitles);而内层是要调用BannerPagerAda

2015-12-15 14:03:10 900

原创 ListView常用小细节

1.设置分割线和高度android:divider="@android:color/darker_gray"android:dividerHeight="8dp"设置 android:divider="@null" 可把分割线设为透明2.隐藏ListView滚动条android:scrollbars="none"3.取消ListVie

2015-11-24 23:22:13 400

原创 java内部类学习笔记

定义:可以将一个类的定义放在另一个类的定义内部,这就是内部类。内部类的种类1.成员内部类成员内部类是定义在另一个类中,不以static修饰。要生成外部类对象的引用,可用外部类.this的方式,生成的是一个静态的引用。要创建内部的对象,可用 外部类.new语法,必须用外部类的实例,不能用静态的外部类引用。  

2015-08-04 23:42:19 479

转载 调用startActivityForResult后onActivityResult立刻响应,返回当前页onActivityResult不响应的问题

参考了网上的一些博客,找到了原因,在此感谢那些分享知识的好心人。原因是在AndroidManifest.xml 中跳转到的页面我自己设置了android:launchMode="singleTask",因为需要传值的 Activity 不容许设置该属性或者 singleInstance,或只能设为标准模式,不然将在 startActivityForResult()后直接调用 onActiv

2015-08-02 20:44:01 470

原创 Android之路

现在从测试转做Andorid开发也有2个月多了,一路走来有许多困难,庆幸自己能走到现在,整理下自己自学的过程,算是留下点东西吧。    先介绍下自己的状况,我是2014年计算机毕业的,跟大多人的大学生活一样,逃课DOTA,4年下来基本没留下什么,4月多的时候,算是抱着混着先的心态去找了游戏测试的工作,刚开始自己还是比较有激情的,认真做,学习相关的知识,但是一段时间后,发现游戏测试的工作只是

2015-08-02 20:39:41 443 2

原创 Error:Execution failed for task ':myapp:dexDebug'. com.android.ide.common.process.ProcessException:

今天遇到这个问题:Error:Execution failed for task ':myapp:dexDebug'. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-openjd

2015-06-25 12:47:54 588

原创 ListView上拉加载更多(分页加载)

实现方法:1 在自定义ListView中对滑动事件进行监听,当滑动在最底部时,调用加载的方法。2. 自定义ListView的加载方法使用接口回调的方式实现,在主Activity实现这个接口,进行回调是对该课程的笔记,需要的同学可直接观看该视频 http://www.imooc.com/learn/136

2015-06-18 23:56:12 1835

转载 BaseAdapter的ArrayIndexOutOfBoundsException

转自: http://blog.csdn.net/wulianghuan/article/details/16946019最近写一个listView中多个listItem布局时,convertView缓存及使用,类似微信的聊天界面的listView,报了一个异常:11-25 15:51:49.076: E/InputEventReceiver(22971): Excep

2015-05-14 12:40:26 433

转载 ListView知识点总结

转自:http://ldl8818.iteye.com/blog/1346501在ListView中设置Selector为null会报空指针? mListView.setSelector(null);//空指针 试试下面这种: mListView.setSelector(new ColorDrawable(Color.TRANSPARENT)); 如何让Li

2015-04-29 18:08:53 462

转载 ScrollView嵌套ListView冲突问题

The shortest & easiest solution for the ListView inside a ScrollView problem.You do not have to do anything special in layout.xml file nor handle anything on the parent ScrollView. You only have t

2015-04-22 11:43:57 432

原创 layout布局覆盖ActionBar

在隐藏和删除Action bar时,要当心为了适应被Action bar占用的空间而导致的Activity的重新布局。如果你的Activity有规律的隐藏和显示Action bar,你可能想要使用覆盖模式。覆盖模式在Activity的顶部描画操作栏,而不是在它们所拥有的屏幕的区域。这样,在Action bar隐藏和重新显示时,你的布局保持不变。要使用覆盖模式,就要给Activity创建一个主题

2015-04-14 23:36:47 1578

原创 自定义Toast设置宽度

使用自定义Toast的时候,在layout文件下设置宽度发现无效,怎么设置都是根据内容大小来显示具体宽度要实现的效果如下自定义Toast代码如下public class BottomToast extends Toast { // private static TextView toastTextView;  public BottomToast(Conte

2015-04-13 12:24:19 8717

原创 运行时管理Manifest Receiver

使用Package Manager的setComponentEnabledSetting方法,可以在运行时启动和禁用应用程序的mainfest Receiver。可以使用这种技术来启动和禁用任何应用程序组件(包括Activity和Service),但对于mainfest Receiver 尤其有用。想要减少应用程序的开销,当应用程序不需要响应一些系统事件时,最好禁用监听这些常见系统事件

2015-04-11 21:36:15 516

原创 java.lang.IllegalStateException: commit already called

ft事务是全局的变量,只能commit一次 @Override public void onClick(View v) { switch (v.getId()) { case R.id.sidebar_hometime: if (teamFragment ==null) { teamFragment = new TeamFragment(); }

2015-04-09 12:46:54 613

转载 Android面试(2)

1. 什么是Activity? 四大组件之一,一般的,一个用户交互界面对应一个activitysetContentView() ,// 要显示的布局, activity 是Context的子类,同时实现了window.callback和keyevent.callback, 可以处理与窗体用户交互的事件.button.setOnclickLinstener{ } 

2015-03-05 17:27:37 926 2

转载 Android开发规范

1.java代码中不出现中文,最多注释中可以出现中文2.局部变量命名、静态成员变量命名只能包含字母,名字中每个单词首字母都为大写(第一个单词首字母除外),其他都为小写3.常量命名只能包含字母和_,字母全部大写,单词之间用_隔开4.layout中的id命名命名模式为:view缩写_模块名称_view的逻辑名称view的缩写详情如下LayoutView:lvRela

2015-03-04 10:35:44 346

转载 Android面试(1)

1、面向对象的特征有哪些方面   1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称

2015-02-24 20:06:43 421

原创 java.lang.IllegalStateException

02-14 10:01:11.340: E/AndroidRuntime(30492): Caused by: java.lang.IllegalStateException02-14 10:01:11.340: E/AndroidRuntime(30492): at android.graphics.Bitmap.setPixels(Bitmap.java:1447)02-14 10:0

2015-02-14 10:48:22 1140

原创 Android实现图片的旋转与暂停

想实现类似网易云音乐的播放专辑封面的效果,点击播放按钮时无限的旋转,点击暂停,则图片暂停。开始想用animation来实现,后发现animation不能实现暂停,继续的效果,图片会重头开始转,要实现这个效果可以通过线程来实现线程代码如下,通过setSuspend方法,可以设置线程是否暂停或启动,监听播放按钮的点击事件,播放时setSuspend(fase),暂停时,setSuspe

2015-02-12 17:50:33 2793

原创 Android Adapter操作Activity

有时Activity中嵌套的几个Adapter,想在Adapter中的getView中设置Button的点击事件时,调用Activity的方法,如setResult,但是因为Adapter与Activity不是同一个类,所以操作有点麻烦可以先把方法在Activity封装一个类1 Activity: 2 public class MyActivity ex

2015-02-05 22:10:52 1988 1

原创 Android城市列表

大家好,分享一个热门城市列表的Demo,原作者是Kayone,在他的基础上加上了全部城市的搜索功能和拼音搜索功能,但是现在只能完整的搜索。模糊搜索还没完成

2015-02-04 16:05:10 1735

原创 全国城市列表JSON格式,有拼音、名字

网上找到的,忘记地址了分享一下。 [ {"label":"北京Beijing010","name":"北京","pinyin":"Beijing","zip":"010"}, {"label":"重庆Chongqing023","name":"重庆","pinyin":"Chongqing","zip":"023"}, {"label":"上海Shanghai021","name"

2015-02-04 11:34:11 14875

原创 GridView中按钮状态的保存

可通过sharedpreferences将当前position的Item里的Button状态保存起来,在getView进行绘制时进行判断如下实现了对 打勾图片状态的保存package com.example.lazeday.activity;import java.util.ArrayList;import java.util.HashMap;import java.util.Li

2015-01-21 22:25:27 650

原创 解决ScrollView下嵌套ListView、GridView显示不全的问题

1.重写gridViewpublic class MyGridView extends GridView { public MyGridView(Context context, AttributeSet attrs) { super(context, attrs); } public MyGridView(Context

2015-01-21 22:22:22 607

转载 Android学习笔记常见对话框AlertDialog

在Android应用中,有多种对话框:Dialog、AlertDialog、ProgressDialog、时间、日期等对话框。  (1)Dialog类,是一切对话框的基类,需要注意的是,Dialog类虽然可以在界面上显示,但是并非继承与习惯的View类,而是直接从java.lang.Object开始构造出来的,类似于Activity,Dialog也是有生命周期的,它的生命周期由Activi

2015-01-13 15:20:05 651

转载 android布局属性详解

RelativeLayout用到的一些重要的属性:      第一类:属性值为true或false     android:layout_centerHrizontal  水平居中      android:layout_centerVertical   垂直居中     android:layout_centerInparent    相对于父元素完全居中    

2014-12-26 09:58:37 434

原创 Android学习使用HTTP协议访问网络

使用HttpURLConnection1.首先要获得HttpURLConnection实例,一般需要new出一个URL对象并传入目标的网络地址,然后调用一下openConnection()方法。URL url = new URL("http://www.baidu.com");connection =(HttpURLConnection)url.openConnection();2.

2014-12-25 14:14:18 536

音乐播放器

Android音乐播放器实现播放、暂停、同步进度条、获取专辑封面、调用了歌词迷的API实现歌词的下载及同步显示功能。

2015-03-02

Android城市列表

可以显示热门的城市类表,有全局城市的搜索功能和拼音搜索功能

2015-02-04

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

TA关注的人

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