任何问题请联系WX:uu16853

买模板送网站采集器 让你轻松放开双手运营网站!

购买更多有优惠!

Android游戏开发之旅九 VideoView类剖析 Android开发技术

   有关SurfaceView相关的内容今天Android123继续延用系统的示例类VideoView来让大家深入了解Android平台的图形绘制基础类的实现原理。大家可能会发现VideoView类的控制方面无法改变,我们可以通过重构VideoView类来实现更个性化的播放器。     public class VideoView extends SurfaceView implements MediaPlayerControl {    private String TAG = "VideoView";    // settable by the client    private Uri         mUri;    private int         mDuration;     // all possible internal states    private static final int STATE_ERROR              = -1;    private static final int STATE_IDLE               = 0;    private static final int STATE_PREPARING          = 1;    private […]

android.appwidget类剖析 Android开发技术

   随着Android 1.5的普及很多网友发现SDK中多出了appwidget这个框架。作为使用Java语言设计的Widget相比目前主流的W3C Widget有更好的运行效率和底层控制能力,今天我们就Android平台上的Widget开发做主要的讲解。   首先我们需要在androidmanifest.xml文件中加入receiver节点来接收系统广播,声明BroadcastReceiver类的方法可以直接使用intent filter来过滤系统信息,下面来自SDK中的写法。   <receiver android:name="TestAppWidgetProvider"  android:label="@string/cwj"  android:icon="@drawable/smart_icon">    <intent-filter>        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> //这里我们需要捕获的是APPWIDGET_UPDATE这个动作    </intent-filter>    <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget_info" /> //定义meta数据,见下面的appwidget-provider </receiver>   我们定一个AppWidgetProviderInfo 结构,用来描述这个widget的外观,这里和layout的布局有些相似,可以设置最小的宽度为40dp,最小高度为30dp。   <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"  android:minWidth="40dp"    android:minHeight="30dp"    android:updatePeriodMillis="86400000" //回调Timer,单位为毫秒。这里是1天=60X60X24X1000,Android手机的电能有限,频率不能太高,最好让用户自己控制    android:initialLayout="@layout/test_appwidget" //初始化时的主要布局    android:configure="com.android.tests.appwidgethost.TestAppWidgetConfigure" > </appwidget-provider>   在Widget中主要使用AppWidgetProvider做基类,刚才我们定义的BroadcastReceiver主要是更新动作ACTION_APPWIDGET_UPDATE ,与此之外还有ACTION_APPWIDGET_DELETED、ACTION_APPWIDGET_ENABLED和ACTION_APPWIDGET_DISABLED分别表示删除是、启用和禁用时触发的事件,这里是系统广播。我们通过 BroadcastReceiver类的onReceive方法来捕获。   下面的Java广播动作获取代码如下:   public void onReceive(Context context, Intent intent) {      String action […]

AndroidManifest.xml文件剖析 (一) Android开发技术

  很多网友对于Android全局配置文件AndroidManifest.xml不是很熟悉,今天我们就一起看下它完整的结构以及每个节点的作用。在我们日常的开发中都少不了下面的配置,每创建一个Activity、Service都离不开这个全局配置文件,深入的了解可以简化程序代码以及提高程序的维护性。   在最外层包含了包名如 package="cn.android123.demo" 、软件的版本号    android:versionCode="1" 以及   android:versionName="1.0" ,里面一层的application分支中将可能包含Android程序的四种对象 Activity、Service、Content Provider以及Receiver。我们每添加上面四个类型中的任一新对象都需要在androidmanifest.xml文件中添加相应节点。   其中Activity的属性常用的可能为android:name和android:label但我们需要了解所有的属性以帮助解决复杂的问题,完整的如下:            android:allowTaskReparenting=["true" | "false"]          android:alwaysRetainTaskState=["true" | "false"]          android:clearTaskOnLaunch=["true"" | "false"]          android:configChanges=[one or more of: "mcc" "mnc" "locale"                                  "touchscreen" "keyboard" "keyboardHidden"                                  "navigation" "orientation" "fontScale"]          android:enabled=["true" | "false"]          android:excludeFromRecents=["true" | "false"]          android:exported=["true" | "false"]          android:finishOnTaskLaunch=["true" | "false"]          android:icon="drawable resource"          android:label="string resource"          android:launchMode=["multiple" | "singleTop" […]

100% Secure Checkout

PayPal / MasterCard / Visa