- 博客(24)
- 收藏
- 关注
原创 图片热区点击的实现
有时我们需要根据点击图片的不同位置响应不同的事件,即通常所说的图片热区点击1、前期准备:要实现热区点击,需要提前测量好原始图片上每块区域的边界点坐标,组成一个坐标数组,用以检测点击是否在某个区域内和绘制点击时的覆盖物2、加载图片并计算实际显示的图片缩放比例imageView.post(new Runnable(){ @Override public void run
2016-12-03 10:13:09
6579
原创 Android Studio相关使用方法
1、关联源码AS默认从当前工程最新SDK源码往下查找,有时源码不在默认位置,就需要手动关联到当前已有源码包去,下面是关联步骤:a)到AS的数据目录.AndroidStuido2.2下找到jdk.table.xml文件,我的位置是C:\Users\Henry\.AndroidStudio2.2\config\options\jdk.table.xmlb)打开jdk.table.xml,x
2016-12-02 17:48:54
583
原创 网络基础
1、一个通讯协议栈通讯协议栈一般分为四层,自下而上分别分为:链路层,网络层(IP协议),运输层(TCP/UDP)和应用层2、IP协议IP协议主要规定数据传输的基本单元,格式,数据包的递交办法与协议,但其定义的传输是单向的,无法保证传输过程的完整性,因此在ip协议之上又发展出TCP协议;3、TCP协议TCP协议提供了一种面向连接,保证高可靠性(数据无丢失,失序,错
2016-11-30 04:28:11
341
原创 Android中常用的设计原则与设计模式
1、面向对象三大特征:封装,继承和多态2、五大基本原则:a)单一职责原则b)开放封闭原则c)里氏替换原则d)依赖倒置原则e)良性依赖原则2、设计模式a)单例模式b)Builder模式c)观察者模式d)策略模式e)原型模式
2016-11-29 17:10:03
427
原创 Thread相关基础
1、Thread的状态:线程大概可分为5个状态,1.创建状态(NEW),当Thread被New出来,还未调用start()方法之前;2.就绪状态,当Thread对象调用start()方法之后;3.运行状态(RUNNABLE),当Thread对象调用start()方法开启线程并在新线程中调用执行run()方法时的状态;4.阻塞状态(BLOCK,WAITING,TIME-WAITI
2016-11-29 13:36:11
615
原创 LeackCanary的使用
1、添加依赖1 dependencies {2 debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'3 releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'4 testCompile 'com.squareup
2016-11-29 01:37:15
2777
原创 MAT的使用
MAT Memory Analysis Tool 用于检测应用内存占用状况的工具。在Android Monitor Device界面中选择需要追踪的应用程序,一次点击 Update Heap - Cause GC - Dump HPROF file 生成并保持hpprof文件。在AS中打开hpprof文件并更改视图模式为 Package Tree View 即可根据包名找到我们的应用程序并
2016-11-29 01:15:18
403
原创 Android Studio开发工具异常与解决方案收集
1、运行时出现Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.出现原因1:Enable adb integration未启动,去Tools-Android-Enable adb integration点击启动即可,若无法启动,观察日志是否adb端口被
2016-11-28 22:32:41
427
原创 WebView的使用详解
1、基本使用:WebSetting 使用WebSettings webSettings = webView.getSettings();//设置WebView是否允许执行JavaScript脚本,默认false,不允许webSettings.setJavaScriptEnabled(true);//设置自适应屏幕宽度webSettings.setUseWideViewPor
2016-11-24 01:08:12
3284
原创 Android 绘图基础
Android 绘制图形主要包括Canvas和Paint两个类,Canvas负责绘图的形状大小位置,Paint控制绘图风格,如画笔颜色,粗细,填充风格。主要APICanvas:绘制弧形,扇形 : drawArc(RectF oval, Float startAngle, Float sweepAngle, boolean UserCenter, Paint paint)Re
2016-11-21 18:46:18
352
原创 Android 安全细节要点,持续收集
1、描述:Android 2.1 以上的系统可为 App 提供应用程序数据的备份和恢复功能,该 由 AndroidMainfest.xml 文件中的 allowBackup 属性值控制,其默认值为 true。当该属性没有显式设置为 false 时,攻击者可通过 adb backup 和 adb restore 对 App 的应用数据进行备份和恢复,从而可能获取明文存储的用户敏 感信息,
2016-11-20 07:24:49
509
原创 Android 隐式启动匹配原则
1、Intent中只能包含一个Action,可以包含多个Category;2、清单文件中一个Activity可配置多个IntentFilter, 一个IntentFilter可包含多个Action,多个Category,但是只能包含一个data;3、Intent若含有Action,IntentFilter中包含多个Action,只要Intent中的Action与IntentFilter中的
2016-11-18 18:03:17
1595
1
转载 关于Android的.so文件
原文地址:http://www.androidchina.net/3380.htmlAndroid系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI。早期的Android系统几乎只支持ARMv5的CPU架构。
2016-05-27 11:30:31
357
原创 ADB小知识备忘
1、解决端口被占用问题等需要重启ADB服务的问题CMD命令窗口输入:adb nodaemon server 找出被占用的端口号输入netstat -ano | findstr "端口号" 找出该端口被哪个进程占据打开任务管理器,点击“进程“,“查看”-“选择列”,勾选PID,根据PID找到该进程并结束该进程输入 adb start-server重启adb服务
2016-05-25 18:41:36
314
原创 从技术实现角度看Android UI设计
一、Android 界面整体分区如图界面总体分为4个部分,从上自下依次为状态栏,动作栏,主内容,虚拟导航栏,其中动作栏与主内容栏是我们展示内容的区域,虚拟导航栏只有部分机型有,下面依次介绍这四个主要部分1、状态栏(status bar)a)所有Android机型默认都有状态栏,用来显示电池电量,网络状况,运营商等系统信息b)状态栏可以隐藏c)状态栏的图标和文
2016-05-21 23:44:26
507
原创 AS使用备忘录
1、使用AS打包APK时如何忽略翻译问题在build.gradle中做如下配置即可忽略检测:lintOptions { abortOnError false checkReleaseBuilds false disable 'MissingTranslation'}
2016-05-15 11:12:02
607
原创 Android属性备忘录
1、android:exported="true|false"四大组件都有该属性,需在清单文件配置,用于规定该组件是否能被外部程序访问,为true则可被外部程序访问,为false则不能。为明确设置该属性情况下,如果组件含有intent-filter,则默认为true; 不含有intent-filter,则默认为false.
2016-03-20 01:29:45
388
转载 Android中asset文件夹和raw文件夹区别
转自:http://blog.csdn.net/leichelle/article/details/7884052*res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。*res/raw和assets的不同点:1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资
2016-03-15 23:19:05
349
原创 JAVA API 被坑备忘录
1、Math.round()理解此方法为四舍五入,具体计算步骤为先 + 0.5 ,然后执行Math.floor(),注意Math.floor()参数为正数时舍弃小数部分,参数为负数时整数位进1,如:Math.floor(8.9)=8;Math.floor(-8.9)= -9;Math.round(8.9)=9;Math.round(-8.9)= -9;Math.round(11.5) =
2016-03-15 22:53:37
415
原创 Android 线程通信
Android是属于单线程模型,所有的界面更新都在主线程中完成,所以主线程也叫UI线程。由于Android中特有的ANR机制,当遇到耗时操作时,我们通常需要启动工作线程来完成耗时操作,对于工作线程的执行结果需要反映到界面上时,我们就需要工作线程和主线程之间的通信,同时,主线程在特定情况下也需要向工作线程发起通信,比如点击界面上的某个按钮,改变工作线程中正在执行的操作。下面就来讲讲线程之间的通信。
2016-03-13 14:06:58
532
原创 Activity的启动模式与吸附值详解
Activity的启动模式包含四中:standard、singleTop、singleTask、singleInstance四中启动模式,可在清单文件中做如下配置:<activity android:name="MainActivity" android:label="@string/app_name" android:lau
2016-03-13 08:40:21
590
原创 ImageView 备忘录
1、想实现图片横向占满ImageView,在保持横宽比的条件下,纵向实现包裹内容,需用如下属性搭配,关键在于adjustViewBounds属性为true,ScaleType用centerCropandroid:layout_width="match_parent"android:layout_height="wrap_content"android:adjustViewBounds=
2016-03-07 22:24:27
279
转载 如何给非AppCompatActivity添加Toolbar
你可以使用支持包提供了新的AppCompatDelegate构件,很容易地将Toolbar添加到Activity上。1,将Toolbar控件添加到布局文件上面ActionBar现在已经被不再被告维护了,它应该被Toolbar取代,因为后者允许了更多的UI灵活性,并且允许Activity更容易地兼容于材料设计的UI模式。因为我们要在这使用支持包,那么我们将使用Toolbar的支持版本,不然的
2016-02-28 07:56:07
361
转载 Android Support兼容包详解
转载自:http://stormzhang.com/android/2015/03/29/android-support-library/Support Library我们都知道Android一些SDK比较分裂,为此google官方提供了Android Support Library package 系列的包来保证高版本sdk开发的向下兼容性, 所以你可能经常看到v4,v7,v13这些
2016-02-26 16:09:44
2947
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人