- 浏览: 106331 次
- 性别:
- 来自: 深圳
最新评论
-
ysc123shift:
给的东西,稍微欠完整。对于初学者,参考意义不大。
music player:一(歌词显示,LyricView,Canvas)---自动滚动 -
sunny09290:
楼主,请问当歌词太长,需要换行该怎么处理呢
music player:一(歌词显示,LyricView,Canvas)---自动滚动 -
zhongyuanceshi:
博主,GraphicsActivity这个类是你自己写的吧,T ...
music player:一(歌词显示,LyricView,Canvas)---自动滚动 -
huxinli:
汉语词典开发-assets,raw的InputStream数据流操作(文件分割合并) -
w1048499078:
能给我源代码 学习么 我邮箱是274633305@qq.c ...
android播放器(music player)源码分析5(在线播放功能)
文章列表
instanceof是运算符只被用于对象引用变量,检查左边的被测试对象是不是右边类或接口的实例化。
这里有两个方面进行解释:
1.语法:针对声明的类
声明被测试对象的类必须与右边类,要么是继承关系,要么是接口关系,否则会报错。如下:
[code="java"] public void TA(Cloneable e){
if(e instanceof String){
}
}
public void TA(E e){
if(e instanceof String){
...
图片是应用里面最常用的资源,在canvas里面使用需要将其解析成Bitmap的方式(例如倒影效果)。这里给出几个可能会有的场景,探讨一下如何使用:
应用主题转化:当某个应用希望换掉整个生命周期中的一些背景图片,例如从卡通主题转化到草原主题,这样会涉及到Button、Tab、Layout等各式各样图片的替换。
动画播放:例如关机动画、闹铃提醒(当然简单的动作除外)
转载请注明http://ishelf.iteye.com/blog/1032563
场景一中,可以通过apk升级来实现,也可以通过调用外部资源来实现。这两种方式比较简单,问题也就显而易见。 ...
在系统启动的时候,会做一系列初始化的工作包括service的创建。所以要了解系统中有多少种类的服务,每一类的服务都是如何实现的,这是一个最好的入口。这就直接从代码入手进行解析:
转载请注明(http://ishelf.i ...
在Email的登录界面,需要配置各种的邮箱。其通信是使用的socket方式进行,具体代码可以参考MailTransport的open方法。
转载请注明http://ishelf.iteye.com/blog/1022652
/**
* Attempts to open a connection using the Uri supplied for connection parameters. Will attempt
* an SSL connection if indicated.
*/
public void ...
关机时候有两种方式可以播放音乐,它们各有优劣,这里给出这两个方法并进行简单的分析:
1.使用系统提供的命令进行播放,代码如下
SystemProperties.set("ctl.start", "haltsound");
此方法类似于开机动画一样,可以通过adb shell中的命令进行调用。命令序列如下adb shell
adb shell #setprop ctl.start bootanim // 这样就可以单独创建一个main surface 并显示
使用SystemProp ...
在android原生的关机流程里面是没有声音和 自定义动画的借口,因此为了实现这两个功能需要找到相应的地方并采用合适的方式进行处理。
在关机的ShutdownThread类里面有两个很重要的方法,一个是beginShutdownSequence,解析如下:
private static void beginShutdownSequence(Context context) {
synchronized (sIsStartedGuard) {
sIsStarted = true;
}
...
好几个月都没有更新blog了, 公司上不了网, 电脑也最近才弄好, 做了那么多事也需要记录一下了。 尤其这几天去面试, 不缺乏3年4年的人, 居然被我问住了, 心里太郁闷了。
都说人不好招,现在是深有体会, 只做不想的人太多了去了,自己做过的都能被别人问住,神啊!
从今天起我这还是继续写blog了
上篇主要是通过人工方式给出所要变形的matrix,而这篇则借助于camera进行变换得到matrix直接应用到cellLayout中去,不多说了直接代码带解释
转载请注明http://ishelf.iteye.com/admin/blogs/836955
@Override
public void dispatchDraw(Canvas canvas) {
long start_time = System.currentTimeMillis();
startRotate(canvas, currentX, can ...
从现有方法来讲为了实现桌面的3D转屏效果主要是通过Launcher中的workspace实现(现有的有源码的方法),具体实现见:
http://www.eoeandroid.com/viewthread.php?tid=27079&extra=&page=1 (写这篇文章也是为了“报答”该作者开源的贡献,共同学习)
不过该方法存在以下几个问题:
不同机器的分辨率和内存大小不同,从而使用cache保持截图的方法很有可能会出现内存方面的错误
界面上面的变化,例如图标增加和删除,需要程序对应做出很多修改,用以保证整体效果的统一。其根本原因就是修改的模 ...
一般来说修改Dialog界面的颜色、背景之类的元素主要涉及的是资源文件修改,不存在源码修改。这里需要提及若是增加或者替换了图片,这里使用make -j2是识别不出来的,为了让其进行最小的编译可以有选择删除下面路径的文件
out\target\common\obj\APP\framework-res_intermediates
以上没有涉及Dialog布局方面的修改,若是修改布局最好重载Dialog并定义自己的Theme,在相应的以下几个文件进行修改:
attrs.xml styles.xml themes.xml
public.xml \\ ...
在public.xml中资源数据的定义会影响到current.xml文件,它们分别在frameworks\base\core\res\res\values和frameworks\base\api\current.xml中
当进行内核文件修改时,需要特别注意public.xml文件的同步,该文档定义了资源文件的二进制兼容性。因此需要小心对待该文件,否则可能会破坏该版本的向后兼容性。
为了避免破坏兼容性,新的资源需加在同类资源的最后(主要ID值,按照ID值递增)。若是放置在中间会导致随后的同类资源被赋予新的ID值从而破坏兼容性。
1..怎么添加一个新的应用和修改原有的应用
这里查看http://www.cnblogs.com/zhangweia/archive/2010/08/19/1803445.html,有详细介绍。需要主要以下几点:
输入命令的顺序,每当修改添加或修改一个文件时,需要重新编译一次,不过当级联的错误过多时就需要级联到别的目录去执行mm命令。我比较懒直接采用网上说的另一种方法,删除了out\target\common中的R文件夹,这样就能把core里面的一些全部编译一边,然后再编译package文件夹。
2.加入一个资源文件时需要考虑framewors\base\cor ...
这里实现了如下所示的进度条
进度条如线状显示,带有少许发散效果
拖拽按钮用圆显示,采用发散效果。(类似太阳的效果)
这个效果主要有这样几个难点:进度条的高度会随着seekbar的宽度变化,然而seekbar宽度过小又会遮罩住部分拖拽按钮;拖拽按钮使用shape方式生产,而非图像。网上给的这部分介绍基本采用了一个版本,具体介绍见http://bashenmail.iteye.com/blog/603649
,该文给出的实现方法并没有解决了这两个难点。~~~~(>_<)~~~~ ,折腾来折腾去的...
转载请注明http://ishelf.it ...
网上androi播放器虽然挺多,感觉提供的歌词显示功能比较死板,要么搜索给的条件死死的,要么放置sdcard内部的歌词格式需要统一,应该提供类似文件夹浏览的功能。^_^,不过在这之前先搞定歌词的现实界面:
转载请注明http://ishelf.iteye.com/admin/blogs/740402
播放器的歌词界面实现以下几个功能
根据歌曲的播放进度自下而上滚动;
提供上下拖动调整歌曲进度的功能;
突出显示当前进度的歌词段,并保证该歌词段处于布局中心
不多说了直接贴代码,首先开启一个线程每隔一段时间往view中 ...
根据上一篇文章中对百度MP3页面的解析,生成如下格式的xml文档。
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
- <Result>
- <Catagory cID="0">
歌手排行
<SubCatagory Rank="1" Rex="<td><span>(.*?)\\.</span><a href=\" ...