- 博客(49)
- 收藏
- 关注
转载 Android测试之Monkey
写在前面的话Android官方对Monkey进行了简单介绍,网上也有不错的翻译。这部分就直接引用官网的原文和网友的翻译。个人理解不同所以觉得有必要把官网原文贴出来。你也可以直接参见https://developer.android.com/tools/help/monkey.html。本文适合android测试人员阅读,欢迎交流讨论。 Monkey是什么Monkey是可以运行在模拟
2015-12-30 20:54:48 482
转载 Android TextView实现跑马灯效果
研究下了让TextView一行显示数据,多的数据用省略号来表示,实现了,然后又继续研究看怎么样能够使TextView实现跑马灯效果,这样用户可以完整的看到所有的数据。在实际的开发中,我们有时候需要滚动的显示信息,这就是我们所说的跑马灯效果。Android中的TextView可以很容易的显示这个效果,只需要添加以下属性就可以了。效果图如下android:ellipsi
2015-12-30 01:11:57 349
转载 Android中TextView内容过长加省略号
textview中有个内容过长加省略号的属性,即ellipsize,用法如下: 在xml中 Android:ellipsize = "end" 省略号在结尾 android:ellipsize = "start" 省略号在开头 android:ellipsize = "middle" 省略号在中间 android:ellipsize = "marquee"
2015-12-29 19:25:26 339
转载 Fragment详解之一——概述
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]前言:时间越来越少了,三个月内的目标,一定要完成!相关文章:1、《Fragment详解之一——概述》2、《Fragment详解之二——基本使用方法》3、《Fragment详解之三——管理Fragment(1)》4、《Fragment详解之四——管理Fragment(2)》
2015-12-29 11:12:18 281
转载 定义 Android 清单
在初見 Intent一章中,我們已嘗試過使用 「startActivity」函式,傳入適當的「Intent」,來呼叫瀏覽器的 Activity。到目前為止,我們可以由學習 Android 應用程式的經驗中歸納得出:所有 Android 程式的運作流程,都定義在 Activity 中。Android 系統與其他系統很不一樣的地方是:它的應用程式並不直接與底層系統緊密結合,而是跑在 A
2015-12-28 00:04:12 604
转载 Android中MediaButtonReceiver广播监听器的机制分析
在Android中并没有定义MediaButtonReceive这个广播类,MediaButtonReceive只是作为一种通俗的命名方式来响应 插入耳机后,点击耳机上的按钮(名称:MEDIA_BUTTON)接受该广播事件的类。所有该MEDIA_BUTTON的按下我们就简称 为MEDIA_BUTTON广播吧。 顾名
2015-12-27 16:39:20 461
转载 AudioManager详解(结合源代码)
AudioManager:用来对音量大小,声音模式(静音,震动,震动加声音等模式)的管理, 还有用它来注册“插入耳机”时的广播接收者(Action: android.intent.action.MEDIA_BUTTON) 源码(没有Android源码的可以看下我之前的博文,有提供下载地址哈~)所在位置: Android-4.0/frameworks/base/media/java/an
2015-12-27 16:37:34 579
转载 Android教程之MediaStore
应网友要求,今天给大家讲android的多媒体数据库。MediaStore这个类是android系统提供的一个多媒体数据库,android中多媒体信息都可以从这里提取。这个MediaStore包括了多媒体数据库的所有信息,包括音频,视频和图像,android把所有的多媒体数据库接口进行了封装,所有的数据库不用自己进行创建,直接调用利用ContentResolver去掉用那些封装好的接口就可以进行数
2015-12-27 16:16:03 657
转载 Andriod获取系统自带铃声
可以通过RingtoneManager 设置type 后,获取到Ringtone对象。或则其Uri。Ringtone可以直接进行播放操作。Java代码 public Ringtone getDefaultRingtone(int type){ return RingtoneManager.getRingtone(mContext, RingtoneManag
2015-12-26 20:57:25 3280 1
转载 Android 代码设置来电铃声
1、如果读到的是音频文件路径,需要先将音乐文件插入到多媒体库。//设置--铃声的具体方法 public void setMyRingtone(String path) { File sdfile = new File(path); ContentValues values = new ContentValues(); values
2015-12-26 16:06:54 865
转载 Android View绘制过程
Android的View绘制是从根节点(Activity是DecorView)开始,他是一个自上而下的过程。View的绘制经历三个过程:Measure、Layout、Draw。基本流程如下图:performTraversals函数,具体的可以参考一下源代码:[java] view plaincopyprint?
2015-12-25 00:36:24 263
转载 Android实战技巧:ViewStub的应用
在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Infl
2015-12-24 23:17:58 590
转载 Android开发MVP模式实践
转载请注明出处:http://write.blog.csdn.net/postedit/40151457现在用一个基于MVP模式的APP项目进一步分析MVP的实际应用。原项目应该使用的是Android studio开发,笔者对项目进行了整理,广大Eclipser请猛点Github链接。一、项目功能说明APP获取好友列表后将数据展示在一个ListV
2015-12-23 00:20:29 439
转载 MVP模式在Android开发中的应用
一、MVP介绍 随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责。为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Model只关系数据的处理,基于MVC概念的MVP(Model-View-Presenter)模式应运而生。 在MVP模式里通常包含4个要素: (1)View:负责绘制UI
2015-12-22 21:57:41 273
转载 android中的mvp模式(二)
1. 需求,这个是《android开发必知的50个诀窍》一书中的mvp章节的需求。在splash页面中,判断是否有网络连接,有则跳到下个页面,无则弹出一条消息通知用户,同时在检查网络是否正常的期间显示一个进度条。2. 类目录结构[java] view plaincopyprint?3. mo
2015-12-22 21:05:12 355
转载 android中MVP模式(一)
1. 明确需求,界面如下:可存,可根据id读取数据。包结构图2. 建立bean[java] view plaincopyprint?public class UserBean { private String mFirstName; private String mLas
2015-12-22 20:46:35 293
转载 RelativeLayout常用属性介绍
下面介绍一下RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical
2015-12-22 19:23:04 245
转载 EditText clearFocus
当editText 调用clearFocus 取消焦点时,framework会把焦点给传给此页面的第一个focusable的控件,如果这个editText是唯一的一个focusable的,那么clearFocus会首先给自己一个hasFocus为True的OnFocusChangeListener,然后在执行clearFocus原本该执行的hasFocus为False的OnFocusChangeL
2015-12-22 13:53:44 726
转载 ViewPager onPageChangeListener总结
android ViewPager滑动事件讲解今天在做项目的时候,由于要处理viewPager页面滑动的事件,所以对其进行了一个小小的研究:首先ViewPager在处理滑动事件的时候要用到OnPageChangeListenerOnPageChangeListener这个接口需要实现三个方法:(onPageScrollStateChanged,onPageScrolled
2015-12-22 12:53:41 321
转载 Android属性 android:focusableInTouchMode
这个属性的意思很明显,就是可以通过touch来获得focus。在手机上开发用的不多,因为大多手机都是触摸式的。最近一个TV上的应用需要用到。 一个界面上有一个自定义个button,我需要进入这个界面就高亮这个button。但是用遥控选择这个程序进入能正常显示,用鼠标点击进入就没有高亮的效果。最后添加上这个属性,效果出来了。 可见,click事件和touch事件在焦点处理上是
2015-12-22 12:52:36 1151
转载 Animation动画详解(三)—— 代码生成alpha、scale、translate、rotate、set及插值器动画
前言:我相信信念的力量,只要每天进步,总有一天,会与众不同。转到JACA以后,发现真的有好多知识要补充,不再像c++那样,只要深入学习就好,这里没有了深入,却要求知识面很广范。先把android的知识补充完以后,再看android的书籍,最后深入学习JAVA,两年的时候应该来得急,努力。不登高山,不知天之高;不临深溪,不知地之厚相关文章:1、《Animation 动画详解(
2015-12-21 19:48:10 828
转载 Android通讯录数据库操作
1. ContactsProvider2.java (实现了ContentProvider)2. ContactsContract.java 所有的联系人Uri,与联系人相关数据库字段均在此定义。这里面包含以下要讲的contacts表,raw_contacts表,data表,phone_lookup表的字段及Uri描述。 Table contacts_id
2015-12-19 09:50:53 1822
转载 访问android平台的通话记录CallLog
Android平台开放程度的确很厉害,你几乎可以调用任何底层的接口,甚至拦截到短信或者呼入电话。这些是J2ME平台无法比拟的。本文介绍一下如何访问android的通话记录。 android平台上的通话记录是以Content Provider的形式存储在手机上的,因此你需要使用ContentResolver来查询通话记录,返回Cursor接口。如下所示:package com.me
2015-12-19 09:49:28 3736
转载 Android入门第八篇之GridView(九宫图)
GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫图。GridView的用法很多,网上介绍最多的方法就是自己实现一个ImageAdapter继承BaseAdapter,再供GridView使用,类似这种的方法本文不再重复,本文介绍的GridView用法跟前文ListView的极其类似。。。。也算是我偷懒一
2015-12-18 02:37:07 243
转载 Android成长之路-LayoutInflater和inflate的用法
在这里用Tabhost的例子来说明:[java] view plaincopypackage cn.csdn.activity; import android.app.TabActivity; import android.os.Bundle; import android.view.LayoutInflater; i
2015-12-15 17:12:16 307
转载 ListView滑动过程中禁止加载图片
listview加载图片优化的功能,在我们使用新浪微博的时候,细心的同学一定发现了,在滑动的过程中,图片是没有被加载的,而是在滑动停止时,才加载图片了。我们今天就做一个这样的效果吧。我们先考虑两个问题:1、在滑动停止的时候,如何获得需要加载的图片控件?2、因为listiew在初始化完成的时候,OnScrollListener的onScrollStat
2015-12-15 01:23:32 563
转载 java synchronized详解
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的
2015-12-15 01:20:30 283
转载 Android使用 LruCache 缓存图片
使用图片缓存技术在你应用程序的UI界面加载一张图片是一件很简单的事情,但是当你需要在界面上加载一大堆图片的时候,情况就变得复杂起来。在很多情况下,(比如使用ListView, GridView 或者 ViewPager 这样的组件),屏幕上显示的图片可以通过滑动屏幕等事件不断地增加,最终导致OOM。 为了保证内存的使用始终维持在一个合理的范围,通常会把被移除屏幕的图片进行回收处理。
2015-12-14 20:15:32 241
转载 Android提供的LruCache类简介
package android.util; import java.util.LinkedHashMap; import java.util.Map; /** * A cache that holds strong references to a limited number of values. Each time * a value is acce
2015-12-14 19:59:28 350
转载 图片缓存之内存缓存技术LruCache,软引用
每当碰到一些大图片的时候,我们如果不对图片进行处理就会报OOM异常,这个问题曾经让我觉得很烦恼,后来终于得到了解决,那么现在就让我和大家一起分享一下吧。这篇博文要讲的图片缓存机制,我接触到的有两钟,一种是软引用,另一种是内存缓存技术。先来看下两者的使用方式,再来作比较。除了加载图片时要用到缓存处理,还有一个比较重要的步骤要做,就是要先压缩图片。1、压缩图片至于要压缩
2015-12-14 19:36:53 339
转载 Android View的onTouchEvent和OnTouch区别
还是以自定义的TestButton为例。我们可以通过重写onTouchEvent方法来处理诸如down move up的消息:[java] view plaincopyprint?public class TestButton extends Button { public TestButton(Context cont
2015-12-13 15:44:10 364
转载 onTouch与onTouchEvent的有什么区别
1.onTouch方法:onTouch方法是View的 OnTouchListener借口中定义的方法。当一个View绑定了OnTouchLister后,当有touch事件触发时,就会调用onTouch方法。(当把手放到View上后,onTouch方法被一遍一遍地被调用)2.onTouchEvent方法:onTouchEvent方法是override 的Activity的方法。重新了
2015-12-13 15:20:49 476
转载 详解Android首选项框架ListPreference
探索首选项框架在深入探讨Android的首选项框架之前,首先构想一个需要使用首选项的场景,然后分析如何实现这一场景。假设你正在编写一个应用程序,它提供了一个搜索飞机航班的工具。而且,假设该应用程序的默认设置是根据机票价格由低到高的顺序显示航班,但用户可以将首选项设置为始终根据最少停站数或特定航线来航班。如何实现这一场景?ListPreference显然,必须为用户提供UI
2015-12-12 22:46:19 438
转载 Android中Settings.System的使用
如果有留意Android中系统设置Settings里面的源码,你会发现代码中频繁用到了Settings.System操作,该类通过键值对的形式,将一些特定的值以全局的模式保存到Setting的数据库中,我们可以通过它提供的get或者put形式的方法对其中的数据进行读写操作,(非系统级别的应用需要添加对应的权限)。当然,如果能够对frameworks进行修改,我们甚至可以在该类中添加一些特定的值,以
2015-12-12 15:17:13 1590
转载 android怎样调用@hide和internal API
Android有两种类型的API是不能经由SDK访问的。第一种是位于com.android.internal包中的API。我将称之为internal API。第二种API类型是一系列被标记为@hide属性的类和方法。从严格意义上来讲,这不是一个单一的API,而是一组小的被隐藏的API,但我仍将其假设为一种API,并称之为hidden API。Hidden API 例子你可以
2015-12-11 22:02:46 302
转载 setOnItemSelectedListener、setOnItemClickListener与setOnTouchlistener的区别
首先从字面上理解,分别是:选择、点击和触摸,但是在实际中该如何使用呢?笔者在刚刚学习的时候,傻傻分不清,后来在学习群中得到帮助,现在和需要的你分享一下下。现在做android开发的,所使用的不论是真机还是模拟机,都是触屏交互的,在这里当选择或点击或触摸某个Item时,前后这些操作的先后顺序是:触摸→点击或选择;那么点击和选择的区分呢?在android手机设备中还真分不清,但是在android电
2015-12-10 14:23:40 795
转载 Android之Adapter用法总结
1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系:Android中所有的Adapter一览: 由图可以看到在Android中与Adapter有关的
2015-12-10 01:23:31 250
转载 Activity的生命周期
子曰:溫故而知新,可以為師矣。《論語》学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精髓。近来回顾了一下关于Activity的生命周期,参看了相关书籍和官方文档,也有了不小的收获,对于以前的认知有了很大程度上的改善,在这里和大家分享一下。熟悉javaEE的朋友们都了解serv
2015-12-09 23:47:18 548
转载 ListView之setEmptyView的问题
使用listView或者gridView时,当列表为空时,有时需要显示一个特殊的empty view来提示用户,一般情况下,如果你是继承ListActivity,只要 当列表为空时就会自动显示TextView 但是,如果继承Activity的话,想出现上面的效果,就需要手动 ListView list= (ListView)findViewById(
2015-12-09 20:45:55 315
转载 Intent和IntentFilter的区别
Intent用于启动Activity,Service, 以及BroadcastReceiver三种组件, 同时还是组件之间通信的重要媒介。使用Intent启动组件的优势1, Intent为组件的启动提供了一致的编程模型。无论想要启动的组件是Activity,Service, 还是BroadcastReceiver,都可以使用Intent封装启动的意图。2, 在某些时候, 应用程序只
2015-12-08 21:26:44 614
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人