当前位置:  编程技术>移动开发
本页文章导读:
    ▪ViewFlipper 范例        ViewFlipper 实例 http://blog.csdn.net/ameyume/archive/2010/12/28/6102137.aspxhttp://blog.csdn.net/xiangyong2008/archive/2010/03/06/5348208.aspxhttp://wang-peng1.iteye.com/blog/572892http://www.bianceng.cn/OS/extra/201011/20561_3.htmhttp://news.w.........
    ▪ 怎么通过改jad和Manifest把其它手机的java游戏改成N830的        如何通过改jad和Manifest把其它手机的java游戏改成N830的 首先要明确一点,不是所有的游戏都能改的。 <2006-02-01><技术资料> 今天先发个技术资料,看懂这个技术资料就不用继续看了;.........
    ▪ 施用service定期执行一个服务       使用service定期执行一个服务 import android.app.Service; import android.os.Handler; public class PeriodicService extends Service { private Handler mPeriodicEventHandler; private final int PERIODIC_EVENT_TIMEOUT = 30000; @Override.........

[1]ViewFlipper 范例
    来源: 互联网  发布时间: 2014-02-18
ViewFlipper 实例
http://blog.csdn.net/ameyume/archive/2010/12/28/6102137.aspx
http://blog.csdn.net/xiangyong2008/archive/2010/03/06/5348208.aspx
http://wang-peng1.iteye.com/blog/572892
http://www.bianceng.cn/OS/extra/201011/20561_3.htm
http://news.wangmeng.cn/detailNews/2183
ViewFlipper的使用
http://wang-peng1.iteye.com/blog/572892

[功能]
1. ViewFlipper 可以包含多个View 且View之间的切换有Animation  比如:渐变效果

[代码]
1. 创建包含ViewFlipper 的main.xml 还包含2个Button 用于各个View切换
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
	<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
	<Button
	android:id="@+id/previousButton"  
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Previous"
    />
    <Button
	android:id="@+id/nextButton"  
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Next"
    />
    </LinearLayout>
<ViewFlipper  
	android:id="@+id/flipper"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center"
    >
</ViewFlipper>
</LinearLayout>

2. 设定 Animation 效果
flipper = (ViewFlipper) findViewById(R.id.flipper);
flipper.setInAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_out));

3. 在 ViewFlipper  里面增加各种View
flipper.addView(addTextByText("HelloAndroid"));
        flipper.addView(addImageById(R.drawable.beijing_003_mb5ucom));
        flipper.addView(addTextByText("eoe.Android"));
        flipper.addView(addImageById(R.drawable.beijing_004_mb5ucom));
        flipper.addView(addTextByText("Gryphone"));

ublic View addTextByText(String text){
    		TextView tv = new TextView(this);
    		tv.setText(text);
    		tv.setGravity(1);
    		return tv;
    }
    
    public View addImageById(int id){
		ImageView iv = new ImageView(this);
		iv.setImageResource(id);
		
		return iv;
    }

4. View 切换
* 下一个View
flipper.showNext();

* 上一个View
flipper.showPrevious();

* 任意一个View
flipper.setDisplayedChild(2);


下面是一个android API demo:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.ViewFlipper;


public class Animation2 extends Activity implements
        AdapterView.OnItemSelectedListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.animation_2);

        mFlipper = ((ViewFlipper) this.findViewById(R.id.flipper));
        mFlipper.startFlipping();

        Spinner s = (Spinner) findViewById(R.id.spinner);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, mStrings);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s.setAdapter(adapter);
        s.setOnItemSelectedListener(this);
    }

    public void onItemSelected(AdapterView parent, View v, int position, long id) {
        switch (position) {

        case 0:
            mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
                    R.anim.push_up_in));
            mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
                    R.anim.push_up_out));
            break;
        case 1:
            mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
                    R.anim.push_left_in));
            mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
                    R.anim.push_left_out));
            break;
        case 2:
            mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
                    android.R.anim.fade_in));
            mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
                    android.R.anim.fade_out));
            break;
        default:
            mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
                    R.anim.hyperspace_in));
            mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
                    R.anim.hyperspace_out));
            break;
        }
    }

    public void onNothingSelected(AdapterView parent) {
    }

    private String[] mStrings = {
            "Push up", "Push left", "Cross fade", "Hyperspace"};

    private ViewFlipper mFlipper;

}

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
          http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:padding="10dip"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

    <ViewFlipper android:id="@+id/flipper"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:flipInterval="2000"
                android:layout_marginBottom="20dip" >
                <TextView
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal"
                        android:textSize="26sp"
                        android:text="@string/animation_2_text_1"/>
                <TextView
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal"
                        android:textSize="26sp"
                        android:text="@string/animation_2_text_2"/>
                <TextView
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal"
                        android:textSize="26sp"
                        android:text="@string/animation_2_text_3"/>
                <TextView
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal"
                        android:textSize="26sp"
                        android:text="@string/animation_2_text_4"/>
    </ViewFlipper>

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dip"
        android:text="@string/animation_2_instructions"
    />

    <Spinner android:id="@+id/spinner"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />

</LinearLayout>




android 自带的TextSwitcher例子:
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.TextSwitcher;
import android.widget.TextView;
import android.widget.ViewSwitcher;

/**
 * Uses a TextSwitcher.
 */
public class TextSwitcher1 extends Activity implements ViewSwitcher.ViewFactory,
        View.OnClickListener {

    private TextSwitcher mSwitcher;

    private int mCounter = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.text_switcher_1);

        mSwitcher = (TextSwitcher) findViewById(R.id.switcher);
        mSwitcher.setFactory(this);

        Animation in = AnimationUtils.loadAnimation(this,
                android.R.anim.fade_in);
        Animation out = AnimationUtils.loadAnimation(this,
                android.R.anim.fade_out);
        mSwitcher.setInAnimation(in);
        mSwitcher.setOutAnimation(out);

        Button nextButton = (Button) findViewById(R.id.next);
        nextButton.setOnClickListener(this);

        mSwitcher.setText(String.valueOf(mCounter));
    }

    public void onClick(View v) {
        mCounter++;
        mSwitcher.setText(String.valueOf(mCounter));
    }
// 重写 ViewSwitcher.ViewFactory 的 makeView()方法,返回一个 View,TextSwitcher 交换时使用  
    @Override  
    public View makeView() {  
        TextView textView = new TextView(this);  
        textView.setGravity(Gravity.CENTER);
        textView.setTextSize(36);  
        return textView;  
    }  
}



    
[2] 怎么通过改jad和Manifest把其它手机的java游戏改成N830的
    来源: 互联网  发布时间: 2014-02-18
如何通过改jad和Manifest把其它手机的java游戏改成N830的

首先要明确一点,不是所有的游戏都能改的。

<2006-02-01><技术资料>

今天先发个技术资料,看懂这个技术资料就不用继续看了;不懂也没关系,我会慢慢讲解的,不过就要等一段时间了,我写得很慢得。。。

觉得有用就帮忙顶上。

以下摘抄自官方网站的N830 JavaSpec V1 (CH)

5.JAD(ADF)文件 
文字编码用UTF-8。另外下面JAD和ADF两者使用时,视为同一来表示。 
有关JAD(ADF)文件的注意事项。 
$ JAD(ADF)大小的最大值为2Kbyte 
$ MIDlet-Jar-Size的最大值为256Kbyte 
$ JAD(ADF)的记述Syntax遵循MIDP1.0。 
$ 属性名有大小写区别。 
$ 表1中规定的【必选】属性必须要设置。 
$ 同一属性名不能重复2次以上。 
$ 属性值请遵循表1的Format。属性值不能省略。 
$ 使用RMS时,MIDlet-Data-Size必须设置适当的值。(能够Manifest指定) 
$ MIDlet通信时,需要将MIDlet-UseNetwork设置为YES。 
$ 表1JAD(ADF)文件和表2(6.Manifest文件)中已与预约的属性名不能设置成任意属性。

表1JAD属性 
属性名: MIDlet-Name
属性值: 用UTF-8最大32byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet suite标题 
!《必须》!

属性名: MIDlet-Version
属性值: 用UTF-8最大16byte(X.Y.Z格式的字符集 (0.0.0~99.99.99)) 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet suite的版本 
!《必须》!

属性名: MIDlet-Vendor
属性值: 用UTF-8最大32byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet suite的生产厂家名称 
!《必须》!

属性名: MIDlet-Jar-URL
属性值: 用UTF-8,最大255byte的URL(/blog_article/不可使用相对路径/index.html) 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时
内容: 下载Jar的URL 
!《必须》!

属性名: MIDlet-Jar-Size
属性值: 最大8byte (0~262144の値) 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 下载的Jar文件大小 
!《必须》!

属性名: MIDlet-Data-Size
属性值: 用UTF-8,最大8byte (0~10240之间的值) 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 使用MIDlet Suite时的RMS大小 
对使用RMS的MIDlet Suite,至少JAD(ADF)或Mainifest的一方是必须。
不使用的是《可选》。不指定时取为0。 

属性名: MIDlet-Install-Notify
属性值: 用UTF-8,最大255byte的URL 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 安装状态报告的发送目标地址URL(http://必须) 
《可选》 

属性名: MIDlet-Description
属性值: 用UTF-8最大512byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 应用程序的描述 
!《必须》!

属性名: MicroEdition-Profile
属性值: MIDP的版本 用UTF-8是8byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 有关指定MIDP-1.0的相关内容: 
!《必须》!

属性名: MicroEdition-Configuration
属性值: CLDC的版本 用UTF-8是8byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 有关指定CLDC-1.0的相关内容: 
!《必须》!

属性名: Media-price 
属性值: 用UTF-8最大32byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 应用程序的价格 
!《必须》!

属性名: MIDlet-UseNetwork 
属性值: 用UTF-8,YES/NO,无大小写区别,最大4byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet Suite 是否使用网络 
《可选》。MIDlet Suite需要通信时为必须。 
不进行通信时为《可选》项。不指定时与No相同 

属性名: 任意(最大32byte字符集),最多5个 
属性值: 用UTF-8最大127byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 可以作为MIDlet的参数来使用 
《可选》。但是,ADF,Manifest 无论哪个定义的属性,当做任意属性时不能识别。

6.Manifest文件 
文字编码用UTF-8。Manifest文件的相关注意事项。 
$ Manifest的记述Syntax遵循http://java.sun.com/products/jdk/1.2/docs/guide/jar/manifest.html。 
$ 属性名有大小写区别。 
$ 表2中规定的【必选】属性必须要设置。 
$ 同一属性名不能重复2次以上。 
$ 属性值请遵循表2的Format。属性值不能省略。 
$ MIDlet-Name、MIDlet-Version、MIDlet-Vendor的属性值与JAD(ADF)文件中的设定值必须一致。 
$ MIDlet-<n> 以外的属性中Manifest和JAD(ADF)文件同时设定的情况下,JAD(ADF)的属性值优先。MIDlet-<n>
为Manifest优先。 
$ 表1(5.JAD(ADF)文件)和表2(6.Manifest文件)中已预约的属性名不能设置成任意属性。另外,JAD(ADF)文
件中设定的任意属性不能作为Manifest的任意属性。 

表2 Manifest属性 
属性名: MIDlet-Name
属性值: 用UTF-8最大32byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet suite的标题 
!《必须》!

属性名: MIDlet-Version
属性值: 用UTF-8最大16byte(X.Y.Z格式的字符集 (0.0.0~99.99.99)) 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet suite的版本 
!《必须》!

属性名: MIDlet-Vendor
属性值: 用UTF-8最大32byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet suite的生产厂家名称 
!《必须》!

属性名: MIDlet-<n> 
属性值: MIDlet suite里面包含的各MIDlet的名称、类 
MIDlet的名称(Name) : 用UTF-8最大64byte 
类(Class Name): 用UTF-8で最大128byte 
不支持ICON 
MIDlet-<n>: Name,ICON,Class Name 
或者MIDlet-<n>: Name, ,Class Name 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet的标题 
!《必须》!

属性名: MicroEdition-Profile
属性值: MIDP的版本 用UTF-8是8byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 有关指定MIDP-1.0的相关内容: 
!《必须》!

属性名: MicroEdition-Configuration
属性值: CLDC 的版本 用UTF-8是8byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 有关指定CLDC-1.0的相关内容: 
!《必须》!

属性名: MIDlet-Description
属性值: 用UTF-8最大512byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 应用程序的描述 
!《必须》!

属性名: MIDlet-Data-Size
属性值: 用UTF-8,最大8byte (0~10240之间的值) 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 使用MIDlet Suite时RMS大小 
对使用RMS的MIDlet Suite,至少在JAD(ADF)或Manifest中有一处必须设置。 
不使用的是《可选》。不指定时取为0。 

属性名: 以“MIDlet-“开头的任意属性(最大32byte字符集),最多5个 
属性值: 用UTF-8最大127byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 可以作为MIDlet的参数来利用 
《可选》。但是,ADF,Manifest 无论哪个定义的属性,当作任意属性时不能识别。

_________________________________________________________________________

<改JAD文件>
JAD文件中必须有如下属性:
MIDlet-<n>
MIDlet-Name
MIDlet-Version
MIDlet-Vendor
MIDlet-Jar-URL
MIDlet-Jar-Size
MIDlet-Description
MicroEdition-Profile
MicroEdition-Configuration
Media-price

如有一个JAD文件的内容如下:
MIDlet-1: JBookMidlet,,JBook.JBookMidlet
MIDlet-Description: N830
MIDlet-Jar-Size: 140517
MIDlet-Jar-URL: JBook.jar
MIDlet-Name: JBook
MIDlet-Vendor: SnailStudio
MIDlet-Version: 1.0
Media-price: 0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0


我一行一行解释。
(1)MIDlet-1: JBookMidlet,,JBook.JBookMidlet


MIDlet suite里面包含的各MIDlet的名称、类 
MIDlet的名称(Name) : 用UTF-8最大64byte 
类(Class Name) 用UTF-8最大128byte 
不支持ICON 
MIDlet-<n>: Name,ICON,Class Name 
或者MIDlet-<n>: Name, ,Class Name



N830一个MIDlet Suite支持5个MIDlet,所以说n的范围是1~5,这里是1(一般都是1)
JBookMidlet是MIDlet的名称,其后有两个逗号,逗号中间应该是图标的文件名,这里没有。最后的JBook.JBookMidlet是JAVA类的名称。
[改]在这里,可以改的是MIDlet的名称(Name),改成你喜欢的名字吧,看起来也爽一些。(注意,Manifest文件中也有这个属性,要改成一样的),一般这里不会有问题的,不建议更改。


(2)MIDlet-Description: N830


应用程序的描述


[改]随便改吧(注意,如果Manifest文件中有这一项,也要改Manifest文件),一般很多其它手机的java程序的JAD都是缺这一行,加上去就好了。


(3)MIDlet-Jar-Size: 140517


Jar文件的大小,字节表示


[改]大小不对的时候再改吧,一般不需要改


(4)MIDlet-Jar-URL: JBook.jar


Jar文件的名称


[改]对应jad的jar文件名称,名称不对时再改吧,一般不需修改


(5)MIDlet-Name: JBook


MIDlet的标题


[改]可以改成喜欢的名称(注意改对应的Manifest文件),一般不需修改


(6)MIDlet-Vendor: SnailStudio


MIDlet Suite厂商的名称


[改]可以改成喜欢的名称(自己的公司?呵呵。但是要注意改对应的Manifest文件),一般不需修改


(7)MIDlet-Version: 1.0


MIDlet Suite的版本号,范围从0.0.0~99.99.99


[改]范围以内都可以,(注意改对应的Manifest文件),一般不需修改


[改]还想改??不能改啦,如果是2.0版本,不用想了,玩不了的,N830是1.0的。。


(8)Media-price: 0


价格啦。。。。我讨厌收费的!!


[改]随便改啦,我喜欢改成0(一般,对应的Manifest文件不会有这一项),一般很多其它手机的java程序的JAD都是缺这一行,加上去就好了。



(9)MicroEdition-Configuration: CLDC-1.0
(10)MicroEdition-Profile: MIDP-1.0


最后两个一起说啦,CLDC版本和MIDP的版本


 



综上,一般只需要在JAD文件中加上MIDlet-Description和Media-price两个属性。

_________________________________________________________________________

Manifest文件

Manifest文件必有属性:


MIDlet-Name
MIDlet-Version
MIDlet-Vendor
MIDlet-<n>
MicroEdition-Profile
MicroEdition-Configuration


MIDlet-Description属性,在N830的java规范中,指定Manifest中是必须的,但是实践证明,这个属性可以不包涵在Manifest中!!


这些属性和JAD文件中的一样,就不多说了。只要记得属性值和JAD中的保持一致就好了。


接下去就是实际动手修改了。
(1)只想改jad和manifest的,可以只安装WinRAR。
(2)想更进一步了解原理,进行修改的,建议继续安装 JDK1.5 , N830 SDK , WinHex
(3)再进一步就要涉及到修改游戏的class文件了,建议继续安装java反编译软件,nokia的com包支持库,索爱的支持库。

今天先到这里,有空就开始写实例教程了。


    
[3] 施用service定期执行一个服务
    来源: 互联网  发布时间: 2014-02-18
使用service定期执行一个服务
import android.app.Service;
import android.os.Handler;

public class PeriodicService extends Service {

private Handler mPeriodicEventHandler;

    private final int PERIODIC_EVENT_TIMEOUT = 30000;

    @Override
    public void onCreate() {
      super.onCreate();

      mPeriodicEventHandler = new Handler();
      mPeriodicEventHandler.postDelayed(doPeriodicTask, PERIODIC_EVENT_TIMEOUT);
    }

    private Runnable doPeriodicTask = new Runnable()
    {
        public void run() 
        {
            //your action here
            mPeriodicEventHandler.postDelayed(doPeriodicTask, PERIODIC_EVENT_TIMEOUT);
        }
    };

    @Override
    public void onDestroy() {

        mPeriodicEventHandler.removeCallbacks(doPeriodicTask);      
        super.onDestroy();
    }
}

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
java开发知识 iis7站长之家
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3