วันพุธที่ 14 พฤศจิกายน พ.ศ. 2555

Android G Sensor

Android G Sensor

-->

Java Code SensorActivity.java

package android.example.sensor;

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class SensorActivity extends Activity  implements SensorEventListener {

      private SensorManager sensorManager; // real device
    //private SensorManagerSimulator sensorManager; // SensorSimulator

      private Sensor accelerometer;
      private TextView txtAcc;
      private TextView txtX;
      private TextView txtY;
      private TextView txtZ;

      @Override
      public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
           
            sensorManager = (SensorManager) this.getSystemService(SENSOR_SERVICE); // Real device
            //sensorManager =  SensorManagerSimulator.getSystemService(this, SENSOR_SERVICE); // SensorSimulator
            accelerometer  = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
            //sensorManager.connectSimulator(); // SensorSimulator
            setContentView(R.layout.activity_sensor);
           
            txtAcc = (TextView) this.findViewById(R.id.txtAccuracy);
            txtX   = (TextView) this.findViewById(R.id.txtX);
            txtY   = (TextView) this.findViewById(R.id.txtY);
            txtZ   = (TextView) this.findViewById(R.id.txtZ);      
      }

    public void onAccuracyChanged(Sensor arg0, int arg1) {
            // Mudou a acurácia do sensor
            txtAcc.setText("= " + arg1);
    }

    public void onSensorChanged(SensorEvent event) {
            // Houve alguma aceleração no sensor
            // Normalmente, é preciso descontar a gravidade... Mas vamos deixar para depois
            txtX.setText("= " + event.values[0]);
            txtY.setText("= " + event.values[1]);
            txtZ.setText("= " + event.values[2]);
    }

    @Override
    protected void onPause() {
            // Vamos economizar baterias, pois a activity não está com o foco
            super.onPause();
            sensorManager.unregisterListener(this); // deixa de receber avisos
    }

    @Override
    protected void onResume() {
            // Temos que reiniciar o sensor
            super.onResume();
            sensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
    }
     
}


activity_sensor.xml code

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:background="#55D5F5"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
        style="@style/titulo_link"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/rotulo1"
    />
<TextView
        style="@style/titulo_link.azul"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/txtAccuracy"
></TextView>

<TextView
        style="@style/titulo_link"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/acx"
    />
<TextView
        style="@style/titulo_link.verde"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/txtX"
></TextView>

<TextView
        style="@style/titulo_link"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/acy"
    />
<TextView
        style="@style/titulo_link.lilas"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/txtY"
></TextView>


<TextView
        style="@style/titulo_link"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/acz"
    />
<TextView
        style="@style/titulo_link.vermelho"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/txtZ"
></TextView>

</LinearLayout>



Download Android G Sensor Example Code



Android Control ควบคุมอุปกรณ์ต่างๆ ด้วย Android

สอนเขียน Android  สอนเขียนโปรแกรม Android
http://androidcontrol.blogspot.com/2012/01/beginning-android-training-android.html




สอนเขียน Android  สอนเขียนโปรแกรม Android แบบ Online

รับสอนเขียนโปรแกรม Android App สอนแบบ online สอนสด ตัวต่อตัว หรือ เป็นกลุ่ม ได้ทั่วประเทศ กำหนดเวลาเรียนได้
การเรียน Android App แบบ online สามารถกำหนดเวลาเรียน เองได้ ตามแต่ตกลงกัน
( รับสอน นอกสถานที่ แบบเป็น กลุ่ม ทั่วประเทศ )

แต่ละ Course ขึ้นอยู่กับพื้นฐานที่มี นะครับ

Course
1.JAVA Programming สำหรับผู้ที่ยังไม่มีพื้นฐานทางด้าน การเขียนโปรแกรม JAVA
เรียน 3-4 ครั้ง ครั้งละ 2 ชั่วโมง  

2.Beginning Android Development เริ่มต้นการพัฒนาด้วย Android ( ต้องมีพื้นฐาน JAVA แล้ว )
เรียน 5-6 ครั้ง ครั้งละ 2 ชั่วโมง 
เรียนจบคอร์สนี้ ก็สามารถทำ Application ได้แล้ว

3.Android Application สอนตามความต้องการในการเขียนโปรแกรม ใช้งานจริง เช่น โปรแกรมใช้งานด้านต่างๆ
ระยะเวลา และ ค่าเรียน ตามแต่ความยากง่ายของโปรแกรม ซึ่งอาจจะรวมสอน JAVA Programming ด้วยสำหรับผู้เริ่มต้นเลย
ดังนั้น ราคาสอน จะขึ้นอยู่กับ สเปคงาน

โปรแกรมที่ใช้ทำการเรียน Team Viewer  Version ล่าสุด Version 8
Meeting ID จะแจ้งให้ก่อนเรียน ผ่านทาง email sms Line หรือ อื่นๆ ตามสะดวก
ใช้ Tab Meeting ใส่ Meeting ID และใส่ชื่อ
แล้ว Join Meeting

ติดต่อ amphancm@gmail.com

วันศุกร์ที่ 21 กันยายน พ.ศ. 2555

Android Camera

-->


Android Camera Preview


The camera is the most visible and most used sensor in an Android device. It is a selling point for most consumers, and the capabilities are getting better with each generation. Image-processing applications normally work on an image after it is taken, but other applications, such as augmented reality, utilize the camera in real-time with overlays.
There are two ways to access the camera from an application.The first is by declaring
an implicit intent.
The implicit intent launches the default camera interface:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivity(intent);

The second way leverages the Camera class, which provides more flexibility in the settings.This creates a custom camera interface, which is the focus of the examples that follow. Camera hardware access requires explicit permission in the AndroidManifest XML file:
<uses-permission android:name="android.permission.CAMERA" />

This is implied in the following section.

Customizing the Camera

Control of the camera is abstracted into various components in the Android system:

  • Camera class—Accesses the camera hardware
  • Camera.Parameters class—Specifies the camera parameters such as picture size, picture quality, flash modes, and method to assign Global Positioning System (GPS) location
  • Camera Preview methods—Sets the camera output display and toggles streaming video preview to the display
  • SurfaceView class—Dedicates a drawing surface at the lowest level of the view hierarchy as a placeholder to display the camera preview
CameraPreviewActivity.java Code

package android.example.camerapreview;

import android.os.Bundle;
import android.app.Activity;
import android.view.Display;
import android.view.Menu;
import android.view.SurfaceView;
import android.view.Window;

public class CameraPreviewActivity extends Activity {

      private int viewWidth = 320;
    private int viewHeight = 240;
           
    private SurfaceView cameraPreview;
           

    @Override
    public void onCreate(Bundle savedInstanceState) {
               
       super.onCreate(savedInstanceState);
       requestWindowFeature(Window.FEATURE_NO_TITLE);
               
       calculateDisplayDimensions();                   
       cameraPreview = new CameraPreview(this);
       setContentView(cameraPreview);
      
    }
           
    private void calculateDisplayDimensions() {
       Display display = getWindowManager().getDefaultDisplay();
       viewWidth = display.getWidth();
       viewHeight = display.getHeight();
    }   
      
}


CameraPreview.java Code


package android.example.camerapreview;

import android.app.Activity;
import android.os.Bundle;
import android.content.Context;
import android.hardware.Camera;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
       
      public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {
       
          private SurfaceHolder holder;
          private Camera camera;
       
          public CameraPreview(Context context) {
              super(context);
              holder = getHolder();
              holder.addCallback(this);
              holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
          }
       
          //@Override
          public void surfaceChanged(SurfaceHolder holder2, int format, int w, int h) {
              Camera.Parameters parameters = camera.getParameters();
              parameters.setPreviewSize(w, h);
              camera.setParameters(parameters);
              camera.startPreview();
          }
       
          //@Override
          public void surfaceCreated(SurfaceHolder holder1) {
              try {
                  camera = Camera.open();
                  camera.setPreviewDisplay(holder1);
              }
              catch (Exception e) {
                  Log.i("Exception surfaceCreated()", "e=" + e);
                  camera.release();
                  camera = null;
              }
       
      }
                      
          //@Override
          public void surfaceDestroyed(SurfaceHolder arg0) {
              camera.stopPreview();
              camera.release();
              camera = null;
          }
          
      }


AndroidMainifest.xml Code


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="android.example.camerapreview"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".CameraPreviewActivity"
            android:label="@string/title_activity_camera_preview" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
   
     <!-- We will request access to the camera, saying we require a camera
         of some sort but not one with autofocus capability. -->
    <uses-permission android:name="android.permission.CAMERA"/>
      <uses-permission android:name="android.permission.INTERNET" />
       
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
    
</manifest>



Download Android Camera Preview Example code




Android Control ควบคุมอุปกรณ์ต่างๆ ด้วย Android

สอนเขียน Android  สอนเขียนโปรแกรม Android
http://androidcontrol.blogspot.com/2012/01/beginning-android-training-android.html




สอนเขียน Android  สอนเขียนโปรแกรม Android แบบ Online

รับสอนเขียนโปรแกรม Android App สอนแบบ online สอนสด ตัวต่อตัว หรือ เป็นกลุ่ม ได้ทั่วประเทศ กำหนดเวลาเรียนได้
การเรียน Android App แบบ online สามารถกำหนดเวลาเรียน เองได้ ตามแต่ตกลงกัน
( รับสอน นอกสถานที่ แบบเป็น กลุ่ม ทั่วประเทศ )

แต่ละ Course ขึ้นอยู่กับพื้นฐานที่มี นะครับ

Course
1.JAVA Programming สำหรับผู้ที่ยังไม่มีพื้นฐานทางด้าน การเขียนโปรแกรม JAVA
เรียน 3-4 ครั้ง ครั้งละ 2 ชั่วโมง  

2.Beginning Android Development เริ่มต้นการพัฒนาด้วย Android ( ต้องมีพื้นฐาน JAVA แล้ว )
เรียน 5-6 ครั้ง ครั้งละ 2 ชั่วโมง 
เรียนจบคอร์สนี้ ก็สามารถทำ Application ได้แล้ว

3.Android Application สอนตามความต้องการในการเขียนโปรแกรม ใช้งานจริง เช่น โปรแกรมใช้งานด้านต่างๆ
ระยะเวลา และ ค่าเรียน ตามแต่ความยากง่ายของโปรแกรม ซึ่งอาจจะรวมสอน JAVA Programming ด้วยสำหรับผู้เริ่มต้นเลย
ดังนั้น ราคาสอน จะขึ้นอยู่กับ สเปคงาน

โปรแกรมที่ใช้ทำการเรียน Team Viewer  Version ล่าสุด Version 8
Meeting ID จะแจ้งให้ก่อนเรียน ผ่านทาง email sms Line หรือ อื่นๆ ตามสะดวก
ใช้ Tab Meeting ใส่ Meeting ID และใส่ชื่อ
แล้ว Join Meeting

ติดต่อ amphancm@gmail.com