- 博客(39)
- 资源 (17)
- 收藏
- 关注
原创 android开发笔记之打造终极适配器
大家看到这个标题是不是觉得很诧异呢?什么叫终极适配器,其实就是这种适配器是万能的,所有需要使用适配器的组件,都可用这一个适配器就行。既然这样,就来讲讲吧。效果:当然这是个简单的布局,用普通的适配器也可以实现,这里只是用它来做个例子,用终极适配器的话,以后你换其他布局,适配器是不用变的,减少了很多代码。首先普通的适配器的写法是:public class MyAdapter extends BaseAd
2016-05-22 16:38:29 6863 11
原创 android开发笔记之权重(layout_weight)
我相信大家在布局文件中都用过权重(layout_weight)吧,当然这只有在线性布局(Linearlayout)中才有的,可是很多人也许都只是简单的理解为比。其实权重就是: 把屏幕剩余空间按比例分配大家先记住这句话,这里就来深入理解下权重,这里以水平排列为例(即宽度的权重),懂了水平的,竖直排列的(即高度的权重)自然同理。①第一种情况(宽度为wrap_content):a.<LinearLayo
2016-05-20 23:52:14 6192 7
原创 android开发笔记之Gson解析
上篇我们讲了一下的Json的解析,大家有没有发现解析一个简单的Json数据都写了这么多代码,如果是一个复杂庞大的Json数据呢,那不得写好多。所以谷歌推出了一款Json解析神器——> Gson。那 Gson 是用来干嘛的呢,它是用来将Json数据转换成对象,或将对象转换成Json数据。只需要导入相应 jar 包就可以。Gson下载地址:http://download.csdn.net这次的Json数
2016-05-24 00:30:08 4729 1
原创 android开发笔记之Json解析
在上篇文章中我们提到在Android开发中经常用到xml文件,当然跟服务器打交道,大部分还是喜欢用Json数据。Json的定义:一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。JSON Vs XML1.JSON和XML的数据可读性基本相同2.JSON和XML同样拥有丰富的解析手段3.JSON相对于XML来讲,数据的体积小4.JSON与JavaScript的交互更加方便5.JSON对数据
2016-05-23 23:50:33 5085
原创 android开发笔记之PULL解析xml文件
在android开发中,经常用到去解析xml文件。我们今天来学习一下XML文件的解析,在java中我们应该知道两种解析方式:DOM和SAX解析方式,我这里就不讲解DOM和SAX的解析方式了,有兴趣的同学可以向我要示例或者自己上网查查,这里重点讲解一下Android中常用并且官方推荐的方式:PULL解析方式PULL解析方式采用事件驱动进行解析的,当pull解析器,开始解析之后,我们可以调用它的next
2016-05-23 22:50:11 4529 3
原创 android开发笔记之ListView的优化+分类显示
今天来讲讲在APP中90%要使用到的一个组件—–> ListView听到这,大家觉得应该是再熟悉不过了吧,当然或许很多人已经知道 ListView 的优化。我在这里就再详细的讲一遍。顺便让ListView分类显示。先来看看效果:可以看到数据有100个(0-99),奇数和偶数分类显示,并给每类数据加了一个头步骤:①在布局文件中添加ListView组件<RelativeLayout
2016-05-21 21:26:53 3080
原创 android开发笔记之ViewPager新手导航页(动态加载指示器)
今天我们来讲个老生常谈的话题,估计大家都用过的—>ViewPager,用它来做新手导航页面,虽然这次也是讲这个,但是和以往的用法可能有些不同,大家都看到标题进来的,应该知道的是:动态加载指示器。什么叫动态加载呢,是不是感觉很高大上呢,其实呢就是动态的去加载指示器的数量的,而不是在布局文件中写死。希望看了这篇文章大家对ViewPager有新的认识。看到这个效果大家应该都很不屑吧,今天讲这个就是为了让大
2016-05-19 23:55:37 2495
原创 android开发笔记之自定义开关按钮
今天来讲讲自定义单个控件,就拿开关按钮来讲讲,相信大家见了非常多这样的了,先看看效果:我们可以看到一个很常见的开关按钮,那就来分析分析。首先:这是由两张图片构成:①一张为有开和关的背景图片②一张为控制开和关的滑动按钮第一步:写个类继承View,并重写几个方法:第一个为构造函数,重写一个参数的函数和两个参数的函数就够了,因为两个参数的函数能够使用自定义属性第二个为控制控件的大小–>protected
2016-05-19 01:03:00 6925 5
原创 android开发笔记之自定义组合控件
今天我们来讲一下自定义组合控件,相信大家也接触过自定义组合控件吧,话不多说,直接干(哈~哈~):大家看到这个觉得这不是很简单的吗,这不就是写个布局文件就搞定嘛,没错,确实直接上布局就行,不过,我只是用这个简单的例子来讲一下自定义组合控件的用法。首先看看,这一行行的条目看起来都长得差不多,只是图片和文字不一样,没错,就是看中这一点,我们可以把一个条目做成一个组合控件,做为一个整体,这样不管你有几个条目
2016-05-17 00:16:06 2165
原创 android开发笔记之 仿优酷圆形菜单
先来看看效果:首先来分析一下:这个菜单可以分成三个菜单:1.一级菜单(即最内圈那个菜单)2.二级菜单(即中间圈那个菜单)3.三级菜单(即最外圈那个菜单)首先,可以将这三个菜单使用相对布局一级菜单只有一个按钮(即home),可以控制二级和三级菜单二级菜单有三个按钮(即menu),中间那个按钮可以控制三级菜单三级菜单有七个按钮那先把布局文件先写出来,采用三个相对布局(即每个菜单采用一个相对布局)<Rel
2016-05-16 23:00:07 2689
原创 android开发笔记之 AlarmManager(闹钟服务)
手机闹钟服务AlarmManagerAlarmManager通常用来开发手机闹钟,并且它是一个全局定时器,可在指定时间或指定周期启动其他组件(包括Activity,Service,BroadcastReceiver)获取AlarmManager对象:getSystemService(Service.ALARM_SERVICE)调用其中的方式设置定时器启动指定组件:set(int type,long
2016-05-16 00:40:24 3989
原创 android开发笔记之 Android代码混淆打包
大家应该都听过代码混淆吧,如果大家有去反编译过别人的APK的话,应该会看到好多包名和类名是a,b.c….之类的的吧,这里就提到了一个概念:混淆。那就让我们了解下这个东西吧作用:为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译缺省情况下,proguard 会混淆所有代码,但是下面几种情况是不能改变java 元素的名称,否则就会这样就会导致程序出错。 一, 我们用到反射的地方。
2016-05-15 20:08:50 1893 1
原创 android开发笔记之 国家/地区语言速查表
国家_地区语言速查表en 英文 en_US 英文 (美国) ar 阿拉伯文 ar_AE 阿拉伯文 (阿拉伯联合酋长国) ar_BH 阿拉伯文 (巴林) ar_DZ 阿拉伯文 (阿尔及利亚) ar_EG 阿拉伯文 (埃及) ar_IQ 阿拉伯文 (伊拉克) ar_JO 阿拉伯文 (约旦) ar_KW 阿拉伯文 (科威特) ar_LB 阿拉伯文 (黎巴嫩) a
2016-05-15 14:19:46 1860
原创 android开发笔记之 Android 国际化
internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符localization(本地化 ),简称L10n。一般用语言_地区的形式表示一种语言,如 zh_CN, zh_TW.国家/地区语言速查表:速查1、组件显示的内容国际化 values文件夹string.xml android:text=”@string/tv” 在Android工程的res目录下
2016-05-15 13:38:14 1860
原创 android开发笔记之多媒体—振动器(Vibrator)
振动器Vibrator手机静音时使用振动提示用户,玩游戏,当系统碰撞,爆炸时使用振动带给用户更逼真的体验。获取振动器Vibrator对象:getSystemService(Service.VIBRATOR_SERVICE)方法使用三个简单的方法来控制手机振动:vibrate(long milliseconds):控制手机振动的毫秒new long[]{1000,2000,1000,3000};vib
2016-05-15 12:48:06 701
原创 android开发笔记之多媒体—TelephonyManager(电话管理器)
电话管理器(TelephonyManager) 电话管理器是一个管理手机通话状态,电话网络信息的服务类。 该类提供了大量的getXxx()方法来获取电话网络的相关信息获取TelephonyManager对象的方式: context.getSystemService(Context.TELEPHONY_SERVICE);接下来就可以获取相关信息: getDeviceId():获取设备编
2016-05-15 12:36:52 1898
原创 android开发笔记之多媒体—AudioManager(控制音量)
AudioManager用来对音量大小,声音模式(静音,震动,震动加声音等模式)的管理 获取对象AudioManager:getSystemService(AUDIO_SERVICE)修改音量:adjustVolume(direction,flag) 修改音量adjustStreamVolume(streamType,direction,flag) 修改音频流和音量direction(“方向
2016-05-15 12:00:44 3520
原创 android开发笔记之多媒体—音频和视频的录制
使用MediaRecorder录制音频手机一般都提供麦克风硬件,而Android系统可以利用该硬件来录制音频了。使用MediaRecorder录制音频的步骤: 1)创建MediaRecorder对象 mediaRecorder = new MediaRecorder(); 2)调用MediaRecorder对象的setAudioSource()方法设置声音来源,一般传入Me
2016-05-15 11:24:48 2050
原创 android开发笔记之多媒体—MediaPlayer + SurfaceView播放视频
前面我们讲了用VideoView来播放视频,这里再介绍一种方式:MediaPlayer + SurfaceView 来播放视频,我们都知道:MediaPlayer 是用来播放音频的SurfaceView 是用来绘制界面的所以这里介绍它们结合起来就能播放视频了,话不多说使用步骤: 1)在界面的布局文件中定义SurfaceView组件。和播放按钮 2)创建MediaPlayer对象,加载指定的视频文
2016-05-15 11:01:50 1563
原创 android开发笔记之多媒体—SurfaceView
SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface的绘制位置。surfaceview提供了一个可见区域,只有在这个可见区域内 的surface部分内容才可见,可见区域外的部分不可见。你可以通过SurfaceHolder接口访问这个surface,getHolder(
2016-05-15 10:30:14 896 3
原创 android开发笔记之权限大全
android.permission.ACCESS_CHECKIN_PROPERTIES //允许读写访问”properties”表在checkin数据库中,改值可以修改上传 android.permission.ACCESS_COARSE_LOCATION //允许一个程序访问CellID或WiFi热点来获取粗略的位置 android.permission.ACCESS_FIN
2016-05-15 01:37:03 1027
原创 android开发笔记之多媒体—VideoView播放视频
——使用VideoView播放视频 效果:使用步骤:1)在布局文件中定义VideoView的组件2)调用setVideoPath(path)指定要播放的资源或者调用setVideoURI(Uri uri)加载uri对应的视频。3)调用VideoView中的start,stop,pause方法控制视频播放4)和MediaController类一起使用,它可以提供一个友好的图形控制界面,
2016-05-15 01:26:08 3183
原创 android开发笔记之多媒体—SoundPool(音效池)
使用SoundPool播放音效——如果应用程序经常需要播放密集,短促的音效。这时还用Mediaplayer就显得不合适。——MediaPlayer的缺点:资源占用量较高,延迟时间较长不支持多个音频同时播放。——SoundPool使用音效池来播放一些较短的声音片段,它的优势资源占用量低和反应延迟小。使用步骤:1.创建对象:new SoundPool(num,stream,0) 第一个参数指定支持
2016-05-15 00:14:22 1277 4
原创 android开发笔记之多媒体—播放音频(音乐)
Android应用增加动画,视频,音乐等多媒体功能,因此为手机提供音频录制,播放,视频录制,播放的功能十分重要。Android提供了常见音频,视频的编码,解码机制,Android支持的音频格式有MP3,WAV和3GP等,支持的视频格式有MP4和3GP等。Android提供了这些多媒体的支持类,可以非常方便地在手机应用中播放音频,视频等。这些多媒体数据可以来自Android应用的资源文件,也可以来自外
2016-05-14 23:44:36 1238
原创 android开发笔记之多媒体—画画板(娱乐一下)
效果: 其实画画板的原理很简单,就是首先记录下按下屏幕的点,然后没移动一下就让这两次移动的连线,周而复始,图像就由很多条直线构成了。 核心代码 :public class MainActivity extends Activity implements OnClickListener,OnSeekBarChangeListener { private View red_view,gre
2016-05-14 22:51:17 846
原创 android开发笔记之多媒体—撕衣服(开心一下)
效果图:看到是不是很激动呢,在这里讲一下原理,其实很简单,就是两张图片叠在一下,当鼠标触摸的时候改变上面那张图片的透明度就可以了。核心代码:public class MainActivity extends Activity { private ImageView iv; private Bitmap baseBitmap,copyBitmap; private Canvas
2016-05-14 21:24:37 1073
原创 android开发笔记之多媒体—Canvas的相关方法
——Canvas相关方法 ——画线:canvas.drawLine(20, 20, 200, 200, paint) ——画矩形:canvas.drawRect(20, 20, 200, 200, paint) ——画圆:canvas.drawCircle(250, 250, 250, paint); ——画扇形:canvas.drawArc(rectF, 0, 90, true,
2016-05-14 20:50:07 628
原创 android开发笔记之多媒体—图片的颜色处理
1.拿到原图baseBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pre);2.拿到一张与原图同样大小的纸copyBitmap = Bitmap.createBitmap(baseBitmap.getWidth(), baseBitmap.getHeight(), baseBitmap.getConfig());3.
2016-05-14 19:47:40 552
原创 android开发笔记之多媒体—图像的操作
1.拿到原图baseBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.img_small_1);2.先拿到一张与原图一样大小的纸,内容空白copyBitmap = Bitmap.createBitmap(baseBitmap.getWidth(), baseBitmap.getHeight(), baseBitmap.g
2016-05-14 17:12:51 645
原创 android开发笔记之多媒体—大图片的加载
1.将图片导入到SD卡2.从SD中获取图片String path = Environment.getExternalStorageDirectory() + "/img_big_1.jpg";bitmap = BitmapFactory.decodeFile(path, options);3.为这种图片设置采样率(即压缩比)Options options = new Options();
2016-05-14 17:02:38 790
原创 android开发笔记之多媒体—小图片的加载
将图片放入SD卡中从SD卡取出该图片String path = Environment.getExternalStorageDirectory() + "/img_small_1.jpg";Bitmap bitmap = BitmapFactory.decodeFile(path);将图片显示到ImageView组件上iv.setImageBitmap(bitmap);核心代码:/** *
2016-05-14 16:32:16 746
原创 android开发笔记之多媒体—图形图像处理
——图像的两种分类: 位图 例子:单色位图(只有两种颜色(黑白),每一个像素点占一位) 256位图(每一个像素点有256个颜色,每一个像素点需要占一个字节) 24位位图(每个像素点占3个字节) 位图图像(bitmap), 亦称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成图样。当放大位图时,可以
2016-05-14 16:22:31 2527
原创 android studio 学习笔记之 全面进阶配置技巧
2013年5月16日,在I/O大会上,谷歌推出新的Android开发环境——Android Studio,到现在的2.0版本,个人感觉还是挺好用的。并且知道,谷歌也将不在支持更新eclipse和ADT,取而代之的是android studio 的 gradle .好了,大家也看到这篇文章的标题,进阶配置技巧,我在前面的文章提过一点点,比如注释模板和签名APK,这次就更就全面一点,希望对大家有点用哦。
2016-05-10 22:04:09 6917 12
原创 android开发笔记之 Activity四种加载模式
既然是安卓开发,我们就免不了和Activity打交道,因为它是前台的界面,也是android四大组件之一,那我们就来谈谈Activity的四种加载模式。为什么要为Activity指定加载模式?Android对Activity的管理,采用Task(即栈)来管理多个Activity,当我们启动一个应用时,Android就会为之创建了一个Task,然后启动这个应用的入口Activity。Android的T
2016-05-10 02:15:56 3622 1
原创 android studio 学习笔记之 生成签名APK
我们知道: 在每个开发完成之后的apk都需要进行签名,这样的apk才能发布在应用市场上,签名过的apk的在签名上中信息都是有公司的相关的信息,签名的相关apk的签名的文件,在Android studio的可以直接对apk的文件签名的。话不多说,直接上步骤:①进行点击菜单中“Build”选项,弹出的下拉菜单中的“generate signed APK”.②进入到generate signed
2016-05-08 12:34:21 1692
原创 android studio 学习笔记之 注释规范化
今天我们讲一下在android studio当中如何配置类注释和方法注释模板,让你的项目更加规范化,先来看看效果:新建一个类的注释效果:给一个方法的注释效果:下面来将下实现步骤吧:File ->Settings ->File and Code Templates ->includes -> File Header配置好之后,记得按下 Apply,这样在新建一个java类的时候,就会自动生成File
2016-05-08 11:56:10 14343
原创 android studio 学习笔记之 非法字符: '\ufeff'问题解决
今天导入一个项目到android studio 的时候碰到了这样一个错误:非法字符: ‘\ufeff’ 细细一想编译器没报错,但编译出错,应该是隐蔽字符BOM的问题,于是在资源管理器定位到该文件,用Notepad++打开,果然没采用(UTF-8 无DOM)模式。解决方案: 因为Eclipse可以智能的把有BOM文件转为无BOM文件,目前AndoridStudio木有这个功能,各位筒子需手动完成。
2016-05-05 21:44:05 948 3
原创 算法学习笔记之折半查找
二分查找又称折半查找 优点: 比较次数少,查找速度快,平均性能好 缺点: 要求待查表为有序表,且插入删除困难。 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。折半查找流程: 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一
2016-05-01 15:58:19 962
原创 算法学习笔记之约瑟夫环问题
问题: 假设下标从0开始,0,1,2 .. m-1共m个人,从1开始报数,报到k则此人从环出退出,问最后剩下的一个人的编号是多少?我的理解: 设f(m,k,i)为m个人的环,报数为k,第i个人出环的编号,m个人的环第i个出来的人就相当于m-1个人的环第i-1个出来的人,不过这个序号是相当于原来m个人的序号。但注意的是m个人的环第一个出来的人序号要减一。通俗的讲就是:假设10个人的环,报数为3的人
2016-05-01 15:46:43 1728
AsyncTask异步加载
2016-06-04
android-smart-image-view-1.0.0.jar
2016-06-02
使用HttpURLConnection
2016-06-02
使用Socket,ServerSocket编程
2016-06-02
ListView的优化及分类显示
2016-05-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人