Android
sola_f
这个作者很懒,什么都没留下…
展开
-
从零开始实现Android自定义手写画板
从零开始实现Android自定义手写画板最近需要实现一个手写签名控件,在搜索多轮后,终于实现了效果,但是一个手写签名,涉及到了自定义View,画板,path等知识发现自己还是有挺多地方不清楚的,下面从零开始实现一个自定义画板,也一个个解释用到的知识点,算是对手写签名用到所需知识的一个总结。手写顾名思义是在屏幕中获取若干不连续的点,然后把这些点连成一条线。1.构造方法里面初始化画布背景、画笔、...原创 2019-09-06 15:11:20 · 1093 阅读 · 0 评论 -
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 · 413 阅读 · 0 评论 -
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 · 600 阅读 · 0 评论 -
ListView上拉加载更多(分页加载)
实现方法:1 在自定义ListView中对滑动事件进行监听,当滑动在最底部时,调用加载的方法。2. 自定义ListView的加载方法使用接口回调的方式实现,在主Activity实现这个接口,进行回调是对该课程的笔记,需要的同学可直接观看该视频 http://www.imooc.com/learn/136原创 2015-06-18 23:56:12 · 1846 阅读 · 0 评论 -
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 · 443 阅读 · 0 评论 -
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 · 473 阅读 · 0 评论 -
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 · 627 阅读 · 0 评论 -
layout布局覆盖ActionBar
在隐藏和删除Action bar时,要当心为了适应被Action bar占用的空间而导致的Activity的重新布局。如果你的Activity有规律的隐藏和显示Action bar,你可能想要使用覆盖模式。覆盖模式在Activity的顶部描画操作栏,而不是在它们所拥有的屏幕的区域。这样,在Action bar隐藏和重新显示时,你的布局保持不变。要使用覆盖模式,就要给Activity创建一个主题原创 2015-04-14 23:36:47 · 1597 阅读 · 0 评论 -
自定义Toast设置宽度
使用自定义Toast的时候,在layout文件下设置宽度发现无效,怎么设置都是根据内容大小来显示具体宽度要实现的效果如下自定义Toast代码如下public class BottomToast extends Toast { // private static TextView toastTextView; public BottomToast(Conte原创 2015-04-13 12:24:19 · 8779 阅读 · 0 评论 -
反方向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 · 650 阅读 · 0 评论 -
Android 坐标系
读Android 群英传的笔记,记录一下1.Android坐标系要了解滑动机制,必须先了解Android的坐标系,在Android中将屏幕的左上角作为坐标原点,原点向右是X轴正方向,原点向下是Y轴正方向,如下图所示。在触控事件中,使用getRawX()、getRawY()方法获得是坐标是Android坐标系中的坐标。2.视图坐标系原创 2016-01-29 17:37:45 · 626 阅读 · 0 评论 -
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 · 1143 阅读 · 3 评论 -
Android Studio Debug调试技巧
在我们日常开发中,debug是我们必不可少的一种能力,不仅可以帮助我们快速判断程序的错误,且在看源码理解思路的时候也有很大的作用,下面总结Android开发中常用的debug技巧。1.单步运行(快捷键Shift + F7)单步运行是最基本的调试方式,在添加断点之后逐步运行,直到程序结束。如在list第2行处添加断点,程序将继续向下逐步执行,到System.out,程序结束。2.Step ...原创 2019-08-30 11:11:06 · 1213 阅读 · 1 评论 -
java四大引用类型
每种编程语言都有自己操作内存中元素的方式,在C和C++中是通过指针,而在java中是通过引用,在Java中一切都是对象,但我们操作的实际是对象的一个引用,java将引用分为了四种类型,强引用、软引用、弱引用、虚引用。强引用java默认new 对象则为强引用,如StringBuffer buffer = new StringBuffer();上面创建了一个StringBuffer对象,并将...原创 2019-08-30 11:10:27 · 417 阅读 · 0 评论 -
ArrayList源码分析
什么是ArrayListArrayList 是 java 集合框架中比较常用的数据结构,底层基于数组实现容量大小动态变化。允许 null 的存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。我们知道在java中,数组定义了大小,就不能改变,那么ArrayList是怎么实现动态扩容,扩容的规则...原创 2019-08-30 11:09:58 · 114 阅读 · 0 评论 -
Android MediaPlayer重复播放问题
项目需要做一个语音的IM功能,语音播放使用MediaPlayer实现,当快速点击语音,一个音频播放没有结束,来回播放时,会重现重复播放的问题,下面说明如何解决。private MediaPlayer mMediaPlayer;private File mLastFile = null;//播放音频统一方法private void doPlay(File mAudioFile) { ...原创 2019-08-30 11:09:12 · 8334 阅读 · 0 评论 -
多渠道打包,不同的包名
每个Android项目都有唯一的一个applicationId,在商店市场中,此ID用来标识你的应用。当我们需要打不同特性的版本,如普通版,专业版,而这2个版本是需要在手机里共存,这时候我们需要在不同的渠道中修改applicationId,在渠道的配置的方式如下 productFlavors { pro{ applicationId = "com.e...原创 2019-01-17 15:11:24 · 542 阅读 · 0 评论 -
Android模拟登录V2EX
最近在撸一个V2EX的客户端,官方API缺少一些功能如登录,发帖等,撸完官方API总觉得少了什么,本篇文章主要通过模拟登录实现一些官方没提供API的功能 观察登录传输的数据在网页上登录帐号,通过chrome的调试模式可以看到 ,我们传了4个数据给服务器,分别是帐号,密码,once,和next,once是用来验证是否人为操作的标志,POST时必须带上这个字段,否则会认为是非人为操作而被禁止访问。知原创 2016-11-21 20:46:29 · 1044 阅读 · 0 评论 -
Android Studio打造自己的Live Templates
设置位置setting->Editor->Live Templates创建一个Live Templates击点右边的 + 号出现如上界面如我们想把findViewbyid创建一个Live Templates,可以先把代码cv到Template text里,然后用$...$ 替换等待输入的变量替换后如下($cast$原创 2016-08-24 12:36:28 · 3302 阅读 · 0 评论 -
运行时管理Manifest Receiver
使用Package Manager的setComponentEnabledSetting方法,可以在运行时启动和禁用应用程序的mainfest Receiver。可以使用这种技术来启动和禁用任何应用程序组件(包括Activity和Service),但对于mainfest Receiver 尤其有用。想要减少应用程序的开销,当应用程序不需要响应一些系统事件时,最好禁用监听这些常见系统事件原创 2015-04-11 21:36:15 · 529 阅读 · 0 评论 -
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 · 444 阅读 · 0 评论 -
SharedPerences存储
一、.将数据存储到SharedPerences中想要使用SharedPerences来存储先要获得SharedPerences对象通过Context类中的getSharedPerences()方法可获得SharedPreferences pePreferences = getSharedPreferences("aa", MODE_PRIVATE);第一个参数是指定Shared原创 2014-12-24 19:59:28 · 1554 阅读 · 0 评论 -
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 · 545 阅读 · 0 评论 -
android学习笔记简单通讯录
设计思路:一、UI设置 1.主界面设置一个ListView 2.在listView的子项定义一个自定义布局,里面存放有联系人头像,姓名,电话号码二、逻辑:1.获取手机通讯录信息2.把获取的信息封装保存起来,可定义一个对象包含姓名,电话号码来进行封装3.通讯录信息与UI的适配一、设置UI activity_main.xml<RelativeL原创 2014-12-24 10:23:59 · 932 阅读 · 0 评论 -
Android学习笔记常见对话框AlertDialog
在Android应用中,有多种对话框:Dialog、AlertDialog、ProgressDialog、时间、日期等对话框。 (1)Dialog类,是一切对话框的基类,需要注意的是,Dialog类虽然可以在界面上显示,但是并非继承与习惯的View类,而是直接从java.lang.Object开始构造出来的,类似于Activity,Dialog也是有生命周期的,它的生命周期由Activi转载 2015-01-13 15:20:05 · 665 阅读 · 0 评论 -
ListView的使用
ListView是用来显示大量数据的,ListView里面的数据无法直接显示1.因先建立list lists 建立一个数组,把需要的数据存储在数组中。2.通过adapter = new Myadapter(context,lists) 通过自定义Myadapter的构造方法,把数据存储在适配器中。3.listView lv.setAdpater(adapter) 通关过listVi原创 2014-12-23 17:28:02 · 479 阅读 · 0 评论 -
Android异步消息处理机制
Android中的异步消息处理由四个部分组成1.MessageMessage是在线程之间传递的消息,它可以在内部携带少量的信息,用于在不同的线程之间交换数据,如Message的what字段,和arg1,arg2来携带一些整型的数据,使用obj字段携带一个Object对象。2.HandlerHandler是处理者的意思,主要用于发送和处理消息。发送信息一般使用Handler的se转载 2014-12-23 14:40:00 · 592 阅读 · 0 评论 -
BitmapFactory.Options处理图片的缩放
Options中有个属性inJustDecodeBounds.可以利用它来避免图片的溢出问题。原理是什么?API这样说:如果值设为true,那么将不返回实际的bitmap,也不给其分配内存空间,这样就避免了内存溢出。但是允许我们查询图片的信息,这其中就包括图片的大小信息(options.outHeight(图片的原始高度)和options.outWidth(图片的原始宽度))。 O转载 2014-12-22 16:52:35 · 1129 阅读 · 0 评论 -
Android的图片压缩类ThumbnailUtils
从Android 2.2开始系统新增了一个缩略图ThumbnailUtils类,位于framework包下的android.media.ThumbnailUtils位置,可以帮助我们从mediaprovider中获取系统中的视频或图片文件的缩略图,该类提供了三种静态方法可以直接调用获取。 1、extractThumbnail (source, width, height)转载 2014-12-22 19:45:48 · 448 阅读 · 0 评论 -
android布局属性详解
RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中转载 2014-12-26 09:58:37 · 441 阅读 · 0 评论 -
全国城市列表JSON格式,有拼音、名字
网上找到的,忘记地址了分享一下。 [ {"label":"北京Beijing010","name":"北京","pinyin":"Beijing","zip":"010"}, {"label":"重庆Chongqing023","name":"重庆","pinyin":"Chongqing","zip":"023"}, {"label":"上海Shanghai021","name"原创 2015-02-04 11:34:11 · 15072 阅读 · 0 评论 -
Android城市列表
大家好,分享一个热门城市列表的Demo,原作者是Kayone,在他的基础上加上了全部城市的搜索功能和拼音搜索功能,但是现在只能完整的搜索。模糊搜索还没完成原创 2015-02-04 16:05:10 · 1761 阅读 · 0 评论 -
android学习LiewPager的使用
ListView可以实现视图滑动以下是使用步骤:1.在布局文件中添加ViewPager布局 <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="fill_parent" android:layout_height="fi原创 2014-12-24 15:33:39 · 489 阅读 · 0 评论 -
Android面试(2)
1. 什么是Activity? 四大组件之一,一般的,一个用户交互界面对应一个activitysetContentView() ,// 要显示的布局, activity 是Context的子类,同时实现了window.callback和keyevent.callback, 可以处理与窗体用户交互的事件.button.setOnclickLinstener{ }转载 2015-03-05 17:27:37 · 954 阅读 · 2 评论 -
Android开发规范
1.java代码中不出现中文,最多注释中可以出现中文2.局部变量命名、静态成员变量命名只能包含字母,名字中每个单词首字母都为大写(第一个单词首字母除外),其他都为小写3.常量命名只能包含字母和_,字母全部大写,单词之间用_隔开4.layout中的id命名命名模式为:view缩写_模块名称_view的逻辑名称view的缩写详情如下LayoutView:lvRela转载 2015-03-04 10:35:44 · 357 阅读 · 0 评论 -
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 · 1161 阅读 · 0 评论 -
Android实现图片的旋转与暂停
想实现类似网易云音乐的播放专辑封面的效果,点击播放按钮时无限的旋转,点击暂停,则图片暂停。开始想用animation来实现,后发现animation不能实现暂停,继续的效果,图片会重头开始转,要实现这个效果可以通过线程来实现线程代码如下,通过setSuspend方法,可以设置线程是否暂停或启动,监听播放按钮的点击事件,播放时setSuspend(fase),暂停时,setSuspe原创 2015-02-12 17:50:33 · 2821 阅读 · 0 评论 -
Android面试(1)
1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称转载 2015-02-24 20:06:43 · 429 阅读 · 0 评论 -
解决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 · 615 阅读 · 0 评论 -
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 · 2019 阅读 · 1 评论