- 博客(84)
- 资源 (2)
- 问答 (8)
- 收藏
- 关注
原创 从零开始实现Android自定义手写画板
从零开始实现Android自定义手写画板最近需要实现一个手写签名控件,在搜索多轮后,终于实现了效果,但是一个手写签名,涉及到了自定义View,画板,path等知识发现自己还是有挺多地方不清楚的,下面从零开始实现一个自定义画板,也一个个解释用到的知识点,算是对手写签名用到所需知识的一个总结。手写顾名思义是在屏幕中获取若干不连续的点,然后把这些点连成一条线。1.构造方法里面初始化画布背景、画笔、...
2019-09-06 15:11:20
1147
原创 Android Studio Debug调试技巧
在我们日常开发中,debug是我们必不可少的一种能力,不仅可以帮助我们快速判断程序的错误,且在看源码理解思路的时候也有很大的作用,下面总结Android开发中常用的debug技巧。1.单步运行(快捷键Shift + F7)单步运行是最基本的调试方式,在添加断点之后逐步运行,直到程序结束。如在list第2行处添加断点,程序将继续向下逐步执行,到System.out,程序结束。2.Step ...
2019-08-30 11:11:06
1296
1
原创 java四大引用类型
每种编程语言都有自己操作内存中元素的方式,在C和C++中是通过指针,而在java中是通过引用,在Java中一切都是对象,但我们操作的实际是对象的一个引用,java将引用分为了四种类型,强引用、软引用、弱引用、虚引用。强引用java默认new 对象则为强引用,如StringBuffer buffer = new StringBuffer();上面创建了一个StringBuffer对象,并将...
2019-08-30 11:10:27
455
原创 ArrayList源码分析
什么是ArrayListArrayList 是 java 集合框架中比较常用的数据结构,底层基于数组实现容量大小动态变化。允许 null 的存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。我们知道在java中,数组定义了大小,就不能改变,那么ArrayList是怎么实现动态扩容,扩容的规则...
2019-08-30 11:09:58
140
原创 Android MediaPlayer重复播放问题
项目需要做一个语音的IM功能,语音播放使用MediaPlayer实现,当快速点击语音,一个音频播放没有结束,来回播放时,会重现重复播放的问题,下面说明如何解决。private MediaPlayer mMediaPlayer;private File mLastFile = null;//播放音频统一方法private void doPlay(File mAudioFile) { ...
2019-08-30 11:09:12
8503
原创 多渠道打包,不同的包名
每个Android项目都有唯一的一个applicationId,在商店市场中,此ID用来标识你的应用。当我们需要打不同特性的版本,如普通版,专业版,而这2个版本是需要在手机里共存,这时候我们需要在不同的渠道中修改applicationId,在渠道的配置的方式如下 productFlavors { pro{ applicationId = "com.e...
2019-01-17 15:11:24
566
原创 Android模拟登录V2EX
最近在撸一个V2EX的客户端,官方API缺少一些功能如登录,发帖等,撸完官方API总觉得少了什么,本篇文章主要通过模拟登录实现一些官方没提供API的功能 观察登录传输的数据在网页上登录帐号,通过chrome的调试模式可以看到 ,我们传了4个数据给服务器,分别是帐号,密码,once,和next,once是用来验证是否人为操作的标志,POST时必须带上这个字段,否则会认为是非人为操作而被禁止访问。知
2016-11-21 20:46:29
1193
原创 自定义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
6761
原创 Android Studio打造自己的Live Templates
设置位置setting->Editor->Live Templates创建一个Live Templates击点右边的 + 号出现如上界面如我们想把findViewbyid创建一个Live Templates,可以先把代码cv到Template text里,然后用$...$ 替换等待输入的变量替换后如下($cast$
2016-08-24 12:36:28
3364
原创 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
1179
原创 Android 坐标系
读Android 群英传的笔记,记录一下1.Android坐标系要了解滑动机制,必须先了解Android的坐标系,在Android中将屏幕的左上角作为坐标原点,原点向右是X轴正方向,原点向下是Y轴正方向,如下图所示。在触控事件中,使用getRawX()、getRawY()方法获得是坐标是Android坐标系中的坐标。2.视图坐标系
2016-01-29 17:37:45
658
原创 反方向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
677
原创 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
1391
原创 ViewPager嵌套带ViewPager的Banner,来回切换Banner数据丢失
数据丢失解决方法:其实是Fragment嵌套了Fragment的问题,外层的Fragment是调用NewMainPagerAdapter adapter = new NewMainPagerAdapter(getFragmentManager(), viewpagerFragmentList, mTitles);而内层是要调用BannerPagerAda
2015-12-15 14:03:10
945
原创 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
431
原创 java内部类学习笔记
定义:可以将一个类的定义放在另一个类的定义内部,这就是内部类。内部类的种类1.成员内部类成员内部类是定义在另一个类中,不以static修饰。要生成外部类对象的引用,可用外部类.this的方式,生成的是一个静态的引用。要创建内部的对象,可用 外部类.new语法,必须用外部类的实例,不能用静态的外部类引用。
2015-08-04 23:42:19
511
转载 调用startActivityForResult后onActivityResult立刻响应,返回当前页onActivityResult不响应的问题
参考了网上的一些博客,找到了原因,在此感谢那些分享知识的好心人。原因是在AndroidManifest.xml 中跳转到的页面我自己设置了android:launchMode="singleTask",因为需要传值的 Activity 不容许设置该属性或者 singleInstance,或只能设为标准模式,不然将在 startActivityForResult()后直接调用 onActiv
2015-08-02 20:44:01
513
原创 Android之路
现在从测试转做Andorid开发也有2个月多了,一路走来有许多困难,庆幸自己能走到现在,整理下自己自学的过程,算是留下点东西吧。 先介绍下自己的状况,我是2014年计算机毕业的,跟大多人的大学生活一样,逃课DOTA,4年下来基本没留下什么,4月多的时候,算是抱着混着先的心态去找了游戏测试的工作,刚开始自己还是比较有激情的,认真做,学习相关的知识,但是一段时间后,发现游戏测试的工作只是
2015-08-02 20:39:41
478
原创 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
638
原创 ListView上拉加载更多(分页加载)
实现方法:1 在自定义ListView中对滑动事件进行监听,当滑动在最底部时,调用加载的方法。2. 自定义ListView的加载方法使用接口回调的方式实现,在主Activity实现这个接口,进行回调是对该课程的笔记,需要的同学可直接观看该视频 http://www.imooc.com/learn/136
2015-06-18 23:56:12
1871
转载 BaseAdapter的ArrayIndexOutOfBoundsException
转自: http://blog.youkuaiyun.com/wulianghuan/article/details/16946019最近写一个listView中多个listItem布局时,convertView缓存及使用,类似微信的聊天界面的listView,报了一个异常:11-25 15:51:49.076: E/InputEventReceiver(22971): Excep
2015-05-14 12:40:26
465
转载 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
487
转载 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
466
原创 layout布局覆盖ActionBar
在隐藏和删除Action bar时,要当心为了适应被Action bar占用的空间而导致的Activity的重新布局。如果你的Activity有规律的隐藏和显示Action bar,你可能想要使用覆盖模式。覆盖模式在Activity的顶部描画操作栏,而不是在它们所拥有的屏幕的区域。这样,在Action bar隐藏和重新显示时,你的布局保持不变。要使用覆盖模式,就要给Activity创建一个主题
2015-04-14 23:36:47
1644
原创 自定义Toast设置宽度
使用自定义Toast的时候,在layout文件下设置宽度发现无效,怎么设置都是根据内容大小来显示具体宽度要实现的效果如下自定义Toast代码如下public class BottomToast extends Toast { // private static TextView toastTextView; public BottomToast(Conte
2015-04-13 12:24:19
8891
原创 运行时管理Manifest Receiver
使用Package Manager的setComponentEnabledSetting方法,可以在运行时启动和禁用应用程序的mainfest Receiver。可以使用这种技术来启动和禁用任何应用程序组件(包括Activity和Service),但对于mainfest Receiver 尤其有用。想要减少应用程序的开销,当应用程序不需要响应一些系统事件时,最好禁用监听这些常见系统事件
2015-04-11 21:36:15
556
原创 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
642
转载 Android面试(2)
1. 什么是Activity? 四大组件之一,一般的,一个用户交互界面对应一个activitysetContentView() ,// 要显示的布局, activity 是Context的子类,同时实现了window.callback和keyevent.callback, 可以处理与窗体用户交互的事件.button.setOnclickLinstener{ }
2015-03-05 17:27:37
982
转载 Android开发规范
1.java代码中不出现中文,最多注释中可以出现中文2.局部变量命名、静态成员变量命名只能包含字母,名字中每个单词首字母都为大写(第一个单词首字母除外),其他都为小写3.常量命名只能包含字母和_,字母全部大写,单词之间用_隔开4.layout中的id命名命名模式为:view缩写_模块名称_view的逻辑名称view的缩写详情如下LayoutView:lvRela
2015-03-04 10:35:44
370
转载 Android面试(1)
1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称
2015-02-24 20:06:43
443
原创 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
1188
原创 Android实现图片的旋转与暂停
想实现类似网易云音乐的播放专辑封面的效果,点击播放按钮时无限的旋转,点击暂停,则图片暂停。开始想用animation来实现,后发现animation不能实现暂停,继续的效果,图片会重头开始转,要实现这个效果可以通过线程来实现线程代码如下,通过setSuspend方法,可以设置线程是否暂停或启动,监听播放按钮的点击事件,播放时setSuspend(fase),暂停时,setSuspe
2015-02-12 17:50:33
2871
原创 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
2075
1
原创 Android城市列表
大家好,分享一个热门城市列表的Demo,原作者是Kayone,在他的基础上加上了全部城市的搜索功能和拼音搜索功能,但是现在只能完整的搜索。模糊搜索还没完成
2015-02-04 16:05:10
1782
原创 全国城市列表JSON格式,有拼音、名字
网上找到的,忘记地址了分享一下。 [ {"label":"北京Beijing010","name":"北京","pinyin":"Beijing","zip":"010"}, {"label":"重庆Chongqing023","name":"重庆","pinyin":"Chongqing","zip":"023"}, {"label":"上海Shanghai021","name"
2015-02-04 11:34:11
15316
原创 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
677
原创 解决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
627
转载 Android学习笔记常见对话框AlertDialog
在Android应用中,有多种对话框:Dialog、AlertDialog、ProgressDialog、时间、日期等对话框。 (1)Dialog类,是一切对话框的基类,需要注意的是,Dialog类虽然可以在界面上显示,但是并非继承与习惯的View类,而是直接从java.lang.Object开始构造出来的,类似于Activity,Dialog也是有生命周期的,它的生命周期由Activi
2015-01-13 15:20:05
683
转载 android布局属性详解
RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中
2014-12-26 09:58:37
451
原创 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
566
Configuration with name 'default' not found
2015-07-07
ScrollView,ViewPager,ListView嵌套问题
2015-04-22
MPAndroidChart饼状图怎么去掉右上角颜色块
2015-04-17
Android 怎么判断过了一个月
2015-02-05
异步任务如何阻塞主线程
2015-01-30
Android保存Activity的状态
2015-01-20
GridView超出屏幕时,数据没保存会重复显示
2015-01-19
Adnroid json解析取数组里的数组
2015-01-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人