摘要:Android内置的Music播放器是通过aid接口, IMediaPlaybackService调用Remote Service在后台播放音乐,MediaPlaybackActivity中SeekBar控件读取IMediaPlaybackService的播放进度,刷新SeekBar的当前位置。通常情况下,开启一个新的线程,然后不断地读取IMediaPlaybackService的当前播放进度,然后通过Handler+Message通知UI线程刷新SeekBar。 Android内置Music播放器采取一个巧妙的办法,利用Handler的sendMessageDelayed(Messag...
阅读全文
摘要:这是一个模仿Android Luncher的CellLayout布局, 可以设置固定的行数和列数, 继承自ViewGroup,故不需要使用Adapter。 只需要使用addView()方法就可以将子View添加到布局,并实现按从左到右,从上到下顺序排序view。还可以设置行间距和列间距import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet;import android.view.View;import android.view.ViewGroup;impor..
阅读全文
摘要:最近在做滑动翻页效果,通过自定义ViewGroup来实现。 但是在给自定义ViewGroup的子控件添加事件监听后,发现ViewGroup的TouchEvent不能触发,只能触发子控件的OnClicked事件。 解决办法是在Activtity中重写dispatchTouchEvent(MotionEvent e)方法, 代码如下: @Override public boolean dispatchTouchEvent(MotionEvent ev) { this.glidePage.onTouchEvent(ev); //glidePage是滑动翻页的自定义ViewGrou...
阅读全文
摘要:public class GlidePage extends ViewGroup { private float mTouchX; private float mLastMotionX; private int mActivePointerId = -1; private Scroller mScroller; public GlidePage(Context context, AttributeSet attrs) { super(context, attrs); mScroller = new Scroller(context); //initScreen(); // TODO ...
阅读全文
摘要:1. 疑难问题就去http://stackoverflow.com/, 几乎的所有问题都有答案。2. Android 设计指南非官方简体中文版: http://www.apkbus.com/design/index.html
阅读全文
摘要:今天用新买的台电的P76Ti Android平板调试应用时, 发现apk无法安装到平板上,无论是用usb调试模式安装,还是直接将apk拷贝到平板上再安装都无法成功。当使用usb调试安装时,在eclipse的的console窗口显示下面的错误信息:AndroidSamples]Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY 怀疑可能平板上缺少一些android的lib, 去查看Logcat的信息, 果然在log提示com.google.android.maps.jar missing,个人猜测台电P76Ti平板可能用的是标...
阅读全文
摘要:简体中文url: http://ditu.google.cn/maps/geo?output=csv&key=abcdekci5234f&q=%s,%s繁体中文url: http://maps.google.com.hk/maps/geo?ie=UTF8&hl=zh-TW&output=csv&key=abcdekci5234f&q=%s,%s英文url: http://maps.google.com/maps/geo?output=csv&key=abcdekci5234f&q=%s,%s 两个s%分别是位置坐标的经度和维度,
阅读全文
摘要:最近使用SAX解析xml时,遇到了2个头疼的问题,经过一番调试,终于解决了。 第一个问题:重写public void characters(char[] ch, int start, int length)方法时, 通常我们会认为char[]数组就是xml element的值,但是经常会出现1个元素会触发两个方法事件,就是说element的值可能会分别处于2个不同的char数组中, 若直接在返回char[]给对应的对象变量,则会造成数据丢失。 我就碰到了一个存放图片url的element的值数据丢失,在下载图片时出错了,才发现了这个问题。 解决方法:就是不会直接在这个方法中将char[...
阅读全文
摘要:只需要为ListView添加cacheColorHint属性,并设置其值为#00000000,例如<ListView android:id="@+id/contentList" android:layout_below="@id/rel" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10sp" android:layout_alignPar
阅读全文
摘要:Android新启动Activity,dialog或者其他窗体中中包含EditText, 新启动的activity的焦点默认在EditText上,这是android系统会弹出软键盘,挤压activity本来的界面,影响美观。 因此最好在新窗体创建时,最好在onCreate()方法中将焦点放在另一个view上. view使用requestFocus()焦点,但是如果让button或者textView之类控件直接使用requestFocus()方法,则无法获取焦点,焦点会依然在editText上。 只能在使用View的requestFocus()方法之前调用下面2个方法,view才可获取焦点: .
阅读全文