2012年1月29日日曜日

AVDのモニタサイズ

QVGA 240 x 320
WQVGA400 240 X 400
WQVGA432 240 X 432
HVGA 320 X 480
WVGA800 480 X 800
WVGA854 480 X 854
WXGA 1280 X 800

2012年1月28日土曜日

XML読み込み

XML読み込み部分
XmlPullParserFactory factory;
factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
 
xpp.setInput( new StringReader ( "Hello World!" ) );
int eventType = xpp.getEventType();

res/raw フォルダにあるファイルを読み込む
XmlPullParserFactory factory;
factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
  
InputStream inputStream = getResources().openRawResource(R.raw.filename);
xpp.setInput(inputStream ,"UTF-8");
   
int eventType = xpp.getEventType();


表示部分

while (eventType != XmlPullParser.END_DOCUMENT) {
    if(eventType == XmlPullParser.START_DOCUMENT) {
        System.out.println("Start document");
    } else if(eventType == XmlPullParser.START_TAG) {
        System.out.println("Start tag "+xpp.getName());
    } else if(eventType == XmlPullParser.END_TAG) {
        System.out.println("End tag "+xpp.getName());
    } else if(eventType == XmlPullParser.TEXT) {
      System.out.println("Text "+xpp.getText());
    }
  eventType = xpp.next();
}

System.out.println("End document");

2012年1月6日金曜日

フロントカメラと背面カメラの同時表示

二つのカメラを同時に利用できるか、試してみました。
AVDでは利用できるようです。実機では試していません。


別に特別な事は必要ありませんでした。
以外に簡単でした。

package com.android.camera2;

import java.util.List;

import android.app.Activity;
import android.hardware.Camera;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class Android2CameraActivity extends Activity {
 private Camera camera;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  SurfaceView mySurfaceView = (SurfaceView) findViewById(R.id.surfaceView1);
  SurfaceHolder holder = mySurfaceView.getHolder();
  holder.addCallback(mSurfaceListener);
  holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

  SurfaceView mySurfaceView2 = (SurfaceView) findViewById(R.id.surfaceView2);
  SurfaceHolder holder2 = mySurfaceView2.getHolder();
  holder2.addCallback(mSurfaceListener2);
  holder2.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  
  // カメラの総数
  int numberOfCameras = Camera.getNumberOfCameras();
  Log.d("個数", String.valueOf(numberOfCameras));

 }

 private SurfaceHolder.Callback mSurfaceListener = new SurfaceHolder.Callback() {
  public void surfaceCreated(SurfaceHolder holder) {
   // TODO Auto-generated method stub
   camera = Camera.open(0);
   try {
    camera.setPreviewDisplay(holder);
   } catch (Exception e) {
    e.printStackTrace();
    Log.d("エラー", "001" );
   }
  }

  public void surfaceDestroyed(SurfaceHolder holder) {
   // TODO Auto-generated method stub
   camera.release();
   camera = null;
  }

  public void surfaceChanged(SurfaceHolder holder, int format, int width,
    int height) {
   // TODO Auto-generated method stub
   Log.d("サーフェイスサイズ", "w=" + String.valueOf(width) + "h=" + height);// 320x180

   camera.stopPreview();

   // camera.setDisplayOrientation(90);// カメラを回転
   Camera.Parameters parameters = camera.getParameters();
   List<Camera.Size> size = parameters.getSupportedPreviewSizes();

   Log.d("カメラのサイズ", "w=" + String.valueOf(size.get(0).width) + "h="
     + String.valueOf(size.get(0).height));// 
   parameters.setPreviewSize(size.get(0).width, size.get(0).height);
   camera.setParameters(parameters);
   camera.startPreview();
  }
 };

 /*
  * 
  */
 private SurfaceHolder.Callback mSurfaceListener2 = new SurfaceHolder.Callback() {
  public void surfaceCreated(SurfaceHolder holder) {
   // TODO Auto-generated method stub
   camera = Camera.open(1);
   try {
    camera.setPreviewDisplay(holder);
   } catch (Exception e) {
    e.printStackTrace();
    Log.d("エラー", "001" );
   }
  }

  public void surfaceDestroyed(SurfaceHolder holder) {
   // TODO Auto-generated method stub
   camera.release();
   camera = null;
  }

  public void surfaceChanged(SurfaceHolder holder, int format, int width,
    int height) {
   // TODO Auto-generated method stub
   Log.d("サーフェイスサイズ", "w=" + String.valueOf(width) + "h=" + height);

   camera.stopPreview();

   // camera.setDisplayOrientation(90);// カメラを回転
   Camera.Parameters parameters = camera.getParameters();
   List<Camera.Size> size = parameters.getSupportedPreviewSizes();

   Log.d("カメラのサイズ", "w=" + String.valueOf(size.get(0).width) + "h="
     + String.valueOf(size.get(0).height));// 
   parameters.setPreviewSize(size.get(0).width, size.get(0).height);
   camera.setParameters(parameters);
   camera.startPreview();
  }
 };


}