Android
文章平均质量分 74
wangdong20
这个作者很懒,什么都没留下…
展开
-
ImageLoader加载显示图片解析
之前讲的都是Universal ImageLoader的缓存部分解析,现在到了最核心的部分就是ImageLoader的加载显示图片部分的代码。首先来看代码结构。原创 2016-03-25 11:50:54 · 1893 阅读 · 2 评论 -
TextureView实现视频界面动态显示红色方框
上一篇讲过用TextureView实现视频界面的时候,不能使用SurfaceView的lockCanvas接口直接在视频界面上绘制自己的东西,比如红色方框今天好好地研究了一下,终于找到好方法解决了,首先我没有使用SurfaceView,因为我觉得SurfaceView不好用,而且对SurfaceView进行View的一些例如缩放,设置透明度,动画之类的操作有很多问题但是Textur原创 2015-11-05 18:05:57 · 4227 阅读 · 0 评论 -
TextureView硬件加速lockCanvas
最近在做Android视频通话部分的需求,有一个需求是在视屏界面上显示红色的方框,经过一段时间的纠结我发现Android4.0以上有一个控件TextureView,做视频界面的话刚好合适,它既可以想SurfaceView那样渲染视频,又可以想View一样对它进行大小,位置,透明度处理,就和普通的View一样。TextureView必须在硬件加速的窗口中。看到这里,我原创 2015-11-04 11:36:34 · 6701 阅读 · 0 评论 -
Android BLE开发之BluetoothGatt status 133
最近在做Android BLE开发,第一次接触蓝牙开发可以说遇到好多问题,好在都一一挺过来了!android的蓝牙开发遇到最常见的问题就是发现连接蓝牙设备连接不上,仔细一看竟然是BluetoothGatt status 133,在Android开发这边经常出现这种情况,这是导致蓝牙设备连接不上的主要原因。好多时候因为BluetoothGatt status 133,手机不得原创 2015-08-10 14:33:01 · 15364 阅读 · 4 评论 -
在使用shape的同时,用代码修改shape的颜色属性
Android里面经常会使用shape来定制一些View的背景可以修改View的背景颜色,形状等属性一般情况下,shape都是在xml文件里面写死了,今天遇到一个需求,View的形状是圆角的,但是颜色是在代码里面设置的最开始的思路是先在代码里给View设置颜色,再在shape里面设置solid属性为透明色 <corners android:topL原创 2014-07-19 18:23:26 · 41028 阅读 · 17 评论 -
Android中的长度单位详解(dp、sp、px、in、pt、mm)
看到有很多网友不太理解dp、sp和px的区别:现在这里介绍一下dp和sp。dp也就是dip。这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度转载 2014-03-15 12:36:52 · 1161 阅读 · 0 评论 -
当android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程
做Android调试的时候经常会遇到,程序写好了,准备接上手机调试,可不一会儿出现相信做过android调试的同学都遇到过这个问题,网上说kill掉跟adb相关的进程,重启Eclipse可是我在任务管理器上没有看到明显的adb进程,我们如何找到它们呢首先,打开cmd,使用adb命令检查一下,最好是把adb命令的路径放在系统的path环境变量里,用adb命令也会方便一原创 2014-03-09 13:35:53 · 20476 阅读 · 9 评论 -
layout_weight属性的那些坑
以前在写android程序的时候,就在layout_weight属性这部分吃过亏首先看一下Layout_weight属性的作用:它是用来分配属于空间的一个属性,你可以设置他的权重。看下面代码:原创 2014-03-12 22:05:26 · 2566 阅读 · 0 评论 -
android:layout_paddingLeft和android:layout_marginLeft区别
android:gravity 属性是对该view中内容的限定.比如一个button 上面的text. 你可以设置该text 相对于view的靠左,靠右等位置.android:layout_gravity是用来设置该view相对与父view 的位置.比如一个button 在linearlayout里,你想把该button放在linearlayout里靠左、靠右等位置就可以通过该属性设置.转载 2014-03-05 21:53:47 · 11324 阅读 · 1 评论 -
自定义TextView的TextSize属性getDimension和setTextSize的冲突
在写Android自定义控件的时候,涉及到TextView的TextSize属性。我写的属性如下:获取TextSize和设置TextSize的时候,如下所示:int textSize = (int) a.getDimension(attr, TypedValue .applyDimension(TypedValue.COMPLEX_U原创 2015-10-21 19:44:06 · 6865 阅读 · 2 评论 -
AndroidStudio导入Eclipse生成的adt项目报unsatisfiedlinkerror错误
现在Android开发Google官方是推荐用AndroidStudio的,但是还是有很多项目是Eclipse下的项目,在把Eclipse生成的项目挪到AndroidStudio里面来还是花了些功夫的。幸运的是现在Eclipse可以导出gradle文件了,也就是说Eclipse可以一键转换成AndroidStudio项目。不过这中间还是会有一些坑的。我最近在做集成第三方sdk的时候,就原创 2015-10-24 16:16:10 · 1553 阅读 · 0 评论 -
AndroidStudio library module的R文件报错
最近在写一个Android的library module,打算在库项目里面写一个自定义控件。自定义控件里面有自己特有的属性。在attr.xml里面生成自己的自定义属性。代码如下:原创 2015-11-09 14:56:56 · 12633 阅读 · 1 评论 -
RoundedImageView源码解析(二)RoundedDrawable解析
RoundedImageView类库的核心内容就在于RoundedDrawable,所以今天就来分析RoundedDrawable的源码。不了解RoundedImageView类库的朋友可以看看上一篇博客http://blog.csdn.net/wangdong20/article/details/50705051首先看构造方法:public RoundedDrawab原创 2016-02-25 17:39:34 · 1719 阅读 · 0 评论 -
ImageLoader内存缓存解析
接下来我要说的就是鼎鼎大名的Universal Image Loader,上一篇讲了ImageLoader的硬盘缓存,本篇将介绍ImageLoader的内存缓存。先来看看ImageLoader内存缓存部分的代码结构。首先是MemoryCache接口public interface MemoryCache { /** * Puts value int原创 2016-03-16 18:55:06 · 1283 阅读 · 0 评论 -
RoundedImageView源码解析(一) 简介
选择哪一个RoundedImageView类库我们可以在网上找到很多关于显示圆角的ImageView开源控件,那么我选择的是哪一款呢?答案是https://github.com/vinc3m1/RoundedImageView。运行效果为什么是这一款RoundedImageView类库?这是一款支持圆角,椭圆,圆形的RoundedImageView类库,可以生成Imag原创 2016-02-20 17:07:35 · 3901 阅读 · 1 评论 -
高仿微信6.0Tab bar
微信6.0版本的底部Tab Bar,切换图标变色的效果还不错,之前看过鸿洋大神的Android高仿微信6.0主界面,很是佩服。不过我发现,真正微信6.0的切换图标变色的效果应该还不是鸿洋大神的那种方法,我们先看一下我做的效果图。在这个Discover发现图标这里,那个指针部分是从灰色变成透明,而不是从灰色变成绿色。所以从这里我可以判断微信6.0的这种切换图标效果应该不是用Pai原创 2015-11-12 14:28:12 · 3282 阅读 · 18 评论 -
RoundedImageView源码解析(三)RoundedImageView解析
现在开始RoundedImageView的源码解析了,之前的RoundedDrawable就是为RoundedImageView的实现做铺垫。RoundedDrawable的作用主要是把Drawable转化为圆角的Drawable. 如果不清楚RoundedDrawable的话,可以参考我的前一篇博客http://blog.csdn.net/wangdong20/article/details原创 2016-03-01 16:25:03 · 2378 阅读 · 0 评论 -
Android如何通过gradientui类库实现渐变切换icon效果
在Android开发里面经常会遇到渐变切换的效果,比如颜色渐变切换效果,移动动画效果。这些都可以用属性动画来做。但是属性动画也有自己的局限性,属性动画只能在控件的get和set方法可以对控件进行操作的时候才能生效,不是所有的效果都可以实现的。比如我们现在要把一个图片渐变的切换成另外一个图片,图片只是颜色风格发生了变化而已,这时候用属性动画是没办法做到的。效果如图:就像图原创 2015-12-24 13:58:01 · 2583 阅读 · 1 评论 -
AndroidStudio怎么将开源项目发布到jcenter
AndroidStudio是从哪里下载类库的?我们在用AndroidStudio写Android程序的时候经常会看到在build.gradle文件里面添加引用的类库,只需要一行代码。 例如:dependencies { compile 'com.david.gradientuilib:gradientuilibrary:1.0.1'}有的时候我会感到好奇,为什么AndroidStudio原创 2015-11-29 19:24:11 · 4912 阅读 · 7 评论 -
Android onTouchEvent的MotionEvent.ACTION_UP不响应
自己写了一个自定义View,里面要监听ouTouchEvent事件,于是我重写了View的onTouchEvent方法。代码如下:@Override public boolean onTouchEvent(MotionEvent event) { int x = (int) event.getX(); int y = (int) event.getY原创 2015-12-17 12:05:07 · 11235 阅读 · 0 评论 -
一个简单但又让人容易忽略的BUG
在我用Android开发一个数独游戏的时候,需要添加相关的截屏功能(也就是将玩数独的界面截下来)代码如下:try{ Bitmap map = Bitmap.createBitmap( puzzleView.getDrawingCache()); saveBitmap(map); Toast.makeText(this, R.string.screen原创 2013-12-08 16:49:33 · 1417 阅读 · 0 评论 -
Unable to resolve target 'android-9'问题解决
Unable to resolve target 'android-9'原创 2013-10-17 10:35:06 · 7151 阅读 · 1 评论 -
Android游戏编程之基本图形编程
以下均转自Android游戏编程入门经典,转载请标明出处使用位图加载和检查位图:Bitmap类我们可通过BitmapFactory单元素就可以从文件加载位图。由于我们将图像以资源形式储存,因此我们从assets/目录加载一幅图像。InputStream inputStream = assetManager.open("bob.png");Bitmap bitmap = Bi原创 2013-02-04 22:44:24 · 4084 阅读 · 0 评论 -
Android游戏编程之SurfaceView进行连续渲染
以下均转自Android游戏编程入门经典,转载请标明出处SurfaceView类是一个用于处理Surface的视图,也是Android API提供的另一个类。什么是Surface?它是一个抽象的原是缓冲区,被屏幕组合器用于渲染特定视图。屏幕组合器是Android上所有渲染的幕后推手,并最终负责将所有的像素点推送到GPU。我们的目标就是在一个独立的线程中执行渲染,而不用大量占用UI线原创 2013-02-05 22:56:21 · 4063 阅读 · 0 评论 -
Android游戏开发框架(一)文件IO
以下均转自Android游戏编程入门经典,转载请标明出处对于游戏开发来说,文件读写是十分必要的。在这里只关心创建InputStream和OutputStream实例,以及读写出入特定文件的标准Java方法。在这里我们只关心从游戏打包的文件中读取数据,例如等级文件、图像和音频文件等。通常情况下,写文件的目的是保存高分或游戏设置,又或者是保存游戏状态以便用户能够接着上次的进度继续玩游戏。我原创 2013-02-08 21:48:54 · 1526 阅读 · 0 评论 -
Android游戏开发框架(四)按键事件处理
以下均转自Android游戏编程入门经典,转载请标明出处先来看看按键处理。首先,它必须要与接收键盘事件的View相连接。接下来,在按键被按下时它必须存储各个按键的当前状态以便轮询。它也必须保持一个KeyEvent实例的列表。最后,它必须正确地同步所有这一切工作,因为当从游戏主循环(在一个不同的线程中执行)轮询时,它将从UI线程中接收事件。让我们在查看一下KeyEvent类。publ原创 2013-02-13 23:00:41 · 2736 阅读 · 0 评论 -
Android游戏编程之测试单点触摸及多点触摸API
以下均转自Android游戏编程入门经典,转载请标明出处触摸屏是获取用户输入最重要的一种方式。直到Android2.0版本才引入多点触摸。先测试单点触摸事件,它适用于所有Android版本。我们在视图中注册一个OnTouchListener接口,并把触摸时间传递给这个接口实现。OnTouchListener接口只有一个方法:public abstract boolean onTouch原创 2013-01-31 23:04:44 · 4075 阅读 · 0 评论 -
Android游戏开发框架(二)音频处理
以下均转自Android游戏编程入门经典,转载请标明出处一首3分钟的歌曲就要占用大量的内存。当播放音乐时,我们需要持续使用音频样本流,而不是将所有的音频样本预加载到内存中。通常情况下,我们只能使用单个的音乐流进行播放,所以只需要访问磁盘一次。对于较短的音效例如爆炸、枪击,情况则不同。我们需要经常多次同时地播放这类音效,每次从磁盘读取音效实例的音频样本流不是一个好主意。不过,幸运的是短的音效原创 2013-02-08 23:10:54 · 2699 阅读 · 0 评论 -
Android游戏编程之音频编程
以下均转自Android游戏编程入门经典,转载请标明出处如果你有一台Android设备,就会注意到当你按下增大或降低音量按钮时,你所控制的不同音量设置取决于你正在运行的应用程序。在通话中,你控制的是输入语音流的音量;在视频播放器中,你控制的是视频音频的音量;在主屏幕上,你控制的是铃声的音量。Android为不同的目的提供不同音频流。当我们在游戏中播放音频时,可使用类来输出音效和音乐到特原创 2013-02-04 00:00:52 · 3949 阅读 · 0 评论 -
Android游戏编程之文件处理
以下均转自Android游戏编程入门经典,转载请标明出处游戏编程肯定不光只是用手机内存还要访问外部存储空间,主要是访问SD卡。先从读取资源文件开始。我们知道assets/和res/文件夹用于存放可在应用程序中的使用文件。assets/用于存储各种应用程序中需要的文件(例如配置文件或音频文件等),这些文件会打包在Android应用程序中。res/包含应用程序所需的各种资源文件,如ic原创 2013-02-02 23:43:51 · 2206 阅读 · 0 评论 -
Android游戏编程之加速计和罗盘测试
以下均转自Android游戏编程入门经典,转载请标明出处游戏中一个有趣的输入方法是加速计,所有的Android设备都要求有一个3D加速计。同样的还有罗盘功能能感应磁场方向以及手机俯仰角。为了获取加速计信息,我们注册一个侦听器,需要实现的接口名为SensorEventListener,它具有两个方法:public void onSensorChanged(SensorEvent ev原创 2013-02-01 23:00:47 · 4077 阅读 · 0 评论 -
创建Android游戏编程测试项目(1)
以下均转自Android游戏编程入门经典,转载请标明出处 上次提到Android游戏编程我们需要了解一些API:窗口管理、输入、文件IO、音频、图形 为了能在一个项目里测试这些API,我创建了一个ListActivity,代码如下package org.example.ch04_android_basics;import android.app原创 2013-01-26 18:10:12 · 2040 阅读 · 0 评论 -
Android游戏编程Manifest文件准备
以下均转自Android游戏编程入门经典,转载请标明出处 在准备Android游戏编程前,我是一筹莫展不知从何下手! 这几天通过看书学习,慢慢理清思路。开始Android游戏编程前并不需要对Android API有深刻了解,我们只需要对Android游戏编程所需要的API有所了解就可以了。我们大概要先了解: 窗口管理 输入原创 2013-01-26 17:14:56 · 2836 阅读 · 0 评论 -
listView实时更新
最近做数独Android程序,在选择数独题目时用到了ListActivity,ListActivity比较特别,在从一个Activity跳转到ListActivity时,结果报了异常,上网查了下,原来虽然listactivity是Activity子类,但listactivity必须与布局文件(ListView)配合起来才能正常跳转,且ListView中android:id必须为@id/andr原创 2013-05-24 20:36:07 · 4926 阅读 · 0 评论 -
LinearLayout的layout_weight问题导致手机无法显示全部控件
今天遇到个难缠的问题,Android界面一直都不是那么好设计,今天体会到了对应的layout文件如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="matc原创 2013-05-05 21:21:30 · 2348 阅读 · 0 评论 -
为什么findViewById会返回null
主要有两种原因。第一种情形是最普通的。比如main.xml如下,其中有一个ListView,其id为lv_contactbook<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:lay转载 2013-05-04 21:25:31 · 5693 阅读 · 0 评论 -
Android与真机连接时显示Fail to install *.apk... more than one device
今天有Eclipse时,不知道出了什么问题,点击运行时总是显示明明手机连接上Eclipse了,但就是运行不了,重启Eclipse,拔掉手机重新连接都搞不定后来查看了adb device显示有两个adb连接,最后在关掉Eclipse,拔掉手机,Kill掉adb进程后,再次全部重启,一切恢复正常了原创 2013-05-04 11:21:33 · 2513 阅读 · 0 评论 -
OpenGL ES纹理映射
以下均转自Android游戏编程入门经典,转载请标明出处为了将一个位图映射到一个三角形上,需要为三角形的每个顶点增加纹理坐标(texture coordinates)。纹理坐标把纹理(上传的位图)中的一个点映射到三角形的一个顶点上。纹理映射通常是2D的。相对位置坐标通常是x,y,z,纹理坐标通常称为u、v或s、t。s等价于标准坐标系统里的x坐标,t等价于y坐标。s轴指右,t轴指向下。加载任原创 2013-03-19 22:49:36 · 3073 阅读 · 0 评论 -
用OpenGL ES绘制一个彩色的三角形
以下均转自Android游戏编程入门经典,转载请标明出处通过使用glColor4f()为所有的顶点设置一个全局默认颜色。但有时需要更多细粒度的控制(例如,需要为每个顶点设置颜色)。OpenGL ES提供这样的功能,需要的只是将RGBA浮点分量加到每个顶点,并告诉OpenGL ES在哪里可以找到每个顶点的颜色。int VERTEX_SIZE = (2 + 4) * 4;ByteBuff原创 2013-03-13 22:14:53 · 2500 阅读 · 0 评论 -
用OpenGL ES绘制一个红色三角形(二)
以下均转自Android游戏编程入门经典,转载请标明出处首先,定义一个三角形的组成部分:一个三角形由3个点组成;每个点都称为顶点;一个顶点对应3D空间中的一个位置;3D空间中的一个位置由3个浮点数表示,分别是x、y、z坐标;一个顶点可以有一些附加属性,例如颜色或纹理坐标,这些属性也由浮点数表示。OpenGL ES采用数组的形式定义三角形。但是,OpenGL ES实际原创 2013-03-12 22:46:16 · 3755 阅读 · 0 评论