当前位置: 编程技术>移动开发
本页文章导读:
▪打开其余应用程序 打开其他应用程序
调用其他程序可以直接使用ComponentName,但有些需要调用Action才行
//可以正常打开
Intent intent=new Intent(); intent.setComponent(new ComponentName("com.android.mms", "com.android.mms.ui.Conv.........
▪ 范例12-会动的地图 实例12--会动的地图
前面已经出了一个展示地图的例子,这个例子主要运用了将地图的放在txt上面,然后读取尽力啊,在j2me中是直接获取,而在android中text放在assets文件夹中,通过AssetManager.........
▪ 具有交互效能的对话框 AlertDialog 具有交互功能的对话框 AlertDialog
public class CH03_12 extends Activity {
/** Called when the activity is first created. */
private Button btn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceSta.........
[1]打开其余应用程序
来源: 互联网 发布时间: 2014-02-18
打开其他应用程序
调用其他程序可以直接使用ComponentName,但有些需要调用Action才行
//可以正常打开
Intent intent=new Intent();
intent.setComponent(new ComponentName("com.android.mms", "com.android.mms.ui.ConversationList"));
M.this.startActivity(intent);
//调用照相机
下面会报错:
Intent intent=new Intent();
intent.setComponent(new ComponentName("com.android.camera", "com.android.camera.CameraEntry"));
M.this.startActivity(intent);
//直接调用Action就可以调用照相机
Intent intent = new Intent();
intent.setAction("android.media.action.STILL_IMAGE_CAMERA");
startActivity(intent);
[2] 范例12-会动的地图
来源: 互联网 发布时间: 2014-02-18
实例12--会动的地图
前面已经出了一个展示地图的例子,这个例子主要运用了将地图的放在txt上面,然后读取尽力啊,在j2me中是直接获取,而在android中text放在assets文件夹中,通过AssetManager来获取。应为我已经写出了android版的java me的游戏包,那么转化这些东西就很简单了。
下面给出效果图和代码:
MainView.java
package com.wjh.demon_12; import java.io.InputStream; import com.wjh.midp_me.AndroidLayerManager; import com.wjh.midp_me.AndroidSprite; import com.wjh.midp_me.AndroidTiledLayer; import android.content.Context; import android.content.res.AssetManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.KeyEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.SurfaceHolder.Callback; public class MainView extends SurfaceView implements Callback,Runnable{ int keyCode = 0; String keyAction = ""; Thread gameThread = null; boolean isGame = true; SurfaceHolder holder = null; Paint backPaint = null; Paint forePaint = null; //具体游戏相关 public AndroidTiledLayer m_TLayer; //管理场景 public AndroidSprite m_ManSprite; //用于显示精灵动画 public AndroidLayerManager m_Manager; //图层管理器,管理各个图层 public int m_nX = 0; //显示区域左上角的横坐标 public int m_nY = 0; //资源管理 AssetManager assetManager = null; public MainView(Context context) { super(context); // TODO Auto-generated constructor stub setFocusable(true); getHolder().addCallback(this); holder = this.getHolder(); backPaint = new Paint(); backPaint.setColor(Color.BLACK); forePaint = new Paint(); assetManager = context.getAssets(); //读取tile图片 Bitmap image = BitmapFactory.decodeResource(context.getResources(), R.drawable.map); //创建TiledLayer场景 m_TLayer = new AndroidTiledLayer( 8, 8, image, 32, 32 ); //设置场景的位置 m_TLayer.setPosition( 0, 0 ); LoadMap(); //读取精灵图片,创建精灵,精灵的像素大小为27*36 Bitmap image2 = BitmapFactory.decodeResource(context.getResources(), R.drawable.man); m_ManSprite = new AndroidSprite( image2, 27, 36 ); //设置精灵左上角的位置 m_ManSprite.setPosition( 80 , 80 ); //将各个图层添入m_Manager m_Manager = new AndroidLayerManager(); m_Manager.append(m_ManSprite); m_Manager.append(m_TLayer); //设置m_Manager的显示区域 m_Manager.setViewWindow( m_nX, m_nY, getWidth(), getHeight() ); } public void LoadMap(){ try{ InputStream is = assetManager.open("map.txt"); int row = 0; //行号 int col = 0; //列号 int ch = is.read(); //读取一个字节的数据 while( ch != -1 ){ //当读到文件末尾时,返回-1 if( ch == '\n' && row < 7 ){ //修正行列号 row ++; col = 0; } else if( ch > '0' && ch < '5' ) {//如果是符合需要的数据 m_TLayer.setCell( row, col, ch - '0' ); if( col < 7 ) col ++; } ch = is.read(); //读取下一数据 } is.close(); //释放资源 } catch (Exception e){ e.printStackTrace(); //显示错误信息 } } @Override public void run() { //获取系统当前时间,并将时间换算成以毫秒为单位的数 long T1 = System.currentTimeMillis(); long T2 = T1; while(isGame){ T2 = System.currentTimeMillis(); if( T2 - T1 > 100 ){ //间隔100毫秒 T1 = T2; input(); logic(); doDraw(); } } } //开始游戏主线程 public void start() { if(gameThread == null) { gameThread = new Thread(this); gameThread.start(); } } //停止游戏主线程 public void stop() { isGame = false; if(gameThread != null) { try { gameThread.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //输入判断 public void input() { boolean m_bKeyDown = false; //有无按键的标志 //如果按下方向键的上键,则显示区域向上移动 if( keyCode == KeyEvent.KEYCODE_DPAD_UP ){ m_nY -= 2; m_bKeyDown = true; } //如果按下方向键的下键,则显示区域向下移动 if( keyCode == KeyEvent.KEYCODE_DPAD_DOWN ){ m_nY += 2; m_bKeyDown = true; } //如果按下方向键的左键,则显示区域向左移动 if( keyCode == KeyEvent.KEYCODE_DPAD_LEFT ){ m_nX -= 2; m_bKeyDown = true; } //如果按下方向键的右键,则显示区域向右移动 if(keyCode == KeyEvent.KEYCODE_DPAD_RIGHT ){ m_nX += 2; m_bKeyDown = true; } if( m_bKeyDown ){ //调整显示区域,使显示区域不超出场景 if( m_nX < 0 ) m_nX = 0; //m_TLayer中存储的场景图像的宽度为8*32,高度也为8*32 if( m_nX > getWidth()-8*32 ) m_nX = getWidth()-8*32; if( m_nY < 0 ) m_nY = 0; if( m_nY > getHeight()-8*32 ) m_nY = getHeight()-8*32; //重新设置显示区域 m_Manager.setViewWindow( m_nX, m_nY, getWidth(), getHeight() ); } keyCode = -1; } public long m_LogicT1 = System.currentTimeMillis(); //逻辑判断 public void logic() { //更换精灵当前显示的“帧”编号,“帧”编号不能大于上限 int n = m_ManSprite.getFrame(); n ++; //getFrameSequenceLength可获取精灵图像中“帧”的个数 if( n >= m_ManSprite.getFrameSequenceLength() ) n = 0; m_ManSprite.setFrame(n); } public void doDraw() { Canvas c = null; try { c = holder.lockCanvas(); synchronized (holder) { paint(c); } }finally{ if(c != null) { holder.unlockCanvasAndPost(c); } } } //画图 public void paint(Canvas canvas) { //用黑色清屏 canvas.drawRect(0, 0, getWidth(), getHeight(), backPaint); //从屏幕的(0,0)点开始显示图像 m_Manager.paint(canvas, forePaint); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub } @Override public void surfaceCreated(SurfaceHolder holder) { // TODO Auto-generated method stub start(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { // TODO Auto-generated method stub stop(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub this.keyCode = keyCode; return true; } }
apk文件(将后缀改为apk):Demon_12.zip
源代码:Demon_12.rar
1 楼
让安卓飞一会
2011-06-17
加油
[3] 具有交互效能的对话框 AlertDialog
来源: 互联网 发布时间: 2014-02-18
具有交互功能的对话框 AlertDialog
public class CH03_12 extends Activity { /** Called when the activity is first created. */ private Button btn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(new BtnClick()); } //事件 class BtnClick implements OnClickListener { @Override public void onClick(View v) { //设置弹出对话框的地方 new AlertDialog.Builder(CH03_12.this).setTitle("提示").setMessage("您好").setPositiveButton ( "您确定?", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 这里写当对对话框点击之后要执行的代码 //finish(); //这里执行离开程序 } } ).show(); } } }
最新技术文章: