Android Anlatımlar

Android Programlama

Bu bölümde Android çatısında programlama yaparken ihtiyacınız olabilecek bazı önemli konular hakkında anlatımlar bulabileceksiniz.

İncele

Android Problemler

Android Problemleri

Bu bölümde Android çatısında programlama yaparken karşılaşabileceğiniz sorunlardan bazılarına cevaplar bulabileceksiniz.

İNCELE

Android Yardımcı Kodlar

Android Programlama Yardımcı Kodlar

Bu bölümde Android çatısında programlama yaparken ihtiyacınız olabilecek küçük kod parçalarını bulabileceksiniz.

İNCELE

Samsung S Pen SDK

Bir önceki yazıda Samsung Mobile SDK 'nın mimarisinden ve nasıl kurulacağından bahsetmiştik. Bu yazıda ise biraz kodlama yapalım. Başlamadan önce, geliştirmiş olduğum ufak demoda kullanacağımız S Pen SDK'nın beni oldukça etkilediğini belirtmeliyim. Bir uygulamaya çizim, silme ve çizim alanına text entegrasyonu yapabilme işlevlerini inanılmaz bir şekilde kolaylaştırıyor.

Geliştirme ortamınızın kurulu olduğunu varsayarak devam ediyorum.

Link'ten  S Pen SDK dosyalarını indirerek işe başlıyoruz. İndirilen arşiv dosyamızı açtığımızda alttaki klasör/dosyaların bulunduğunu görüyoruz. Örnek projemizi geliştirirken libs klasörü içeriğini kullanacağız.

 Yeni bir Android Application Project oluşturuyoruz.

Projemizi oluşturduktan sonra;

libs klasörü altındaki libspen23.jar dosyasını ve armeabi klasörünü projemiz libs klasörü altına kopyalıyor ve libspen23.jar dosyasını build path'imize ekliyoruz.

Artık S Pen SDK 'nın yeteneklerini kullanmaya başlayabiliriz. Tüm bu işlemleri yaptıktan sonra herhangi bir şey yapmamış olmamıza rağmen projeyi çalıştırmayı denemenizi rica ediyorum. Eclipse için ayrılan hafıza yetmediği için Eclipse'inizin kitlenebilmesi mümkün. Benim kitlendi. Çözümünü link ile gerçekleştirerek devam edebiliriz.

Öncelikle layout dosyamızı oluşturalım

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/penMode"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="15dp"
        android:text="Pen" />

    <Button
        android:id="@+id/eraserMode"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/penMode"
        android:layout_toRightOf="@+id/penMode"
        android:text="Eraser" />

    <Button
        android:id="@+id/textMode"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/penMode"
        android:layout_toLeftOf="@+id/penMode"
        android:text="Text " />

    <RelativeLayout
        android:id="@+id/drawing_workspace"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/penMode" >
    </RelativeLayout>

</RelativeLayout>

Şimdi de S Pen SDK yeteneklerini kullanacağımız sınıfımızı oluşturalım;

package com.gokselguren.spendemo;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RelativeLayout;

import com.samsung.spensdk.SCanvasConstants;
import com.samsung.spensdk.SCanvasView;

public class MainActivity extends Activity implements OnClickListener {
    Context mContext = this;
    Button text, pen, eraser;
    RelativeLayout mCanvasContainer;
    SCanvasView mSCanvas;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mCanvasContainer = (RelativeLayout) findViewById(R.id.drawing_workspace);
        mSCanvas = new SCanvasView(mContext);

        mCanvasContainer.addView(mSCanvas);

        text = (Button) findViewById(R.id.textMode);
        pen = (Button) findViewById(R.id.penMode);
        eraser = (Button) findViewById(R.id.eraserMode);
        text.setOnClickListener(this);
        pen.setOnClickListener(this);
        eraser.setOnClickListener(this);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {

            case R.id.textMode:
                mSCanvas.setCanvasMode(SCanvasConstants.SCANVAS_MODE_INPUT_TEXT); // Text
                                                                                  // Mode
                break;
            case R.id.penMode:
                mSCanvas.setCanvasMode(SCanvasConstants.SCANVAS_MODE_INPUT_PEN); // Pen
                                                                                 // Mode
                break;
            case R.id.eraserMode:
                mSCanvas.setCanvasMode(SCanvasConstants.SCANVAS_MODE_INPUT_ERASER); // Eraser
                                                                                    // Mode
                break;

            default:
                break;
        }
    }

}

Sonuç inanılmaz, iyi bir performans ile çizim, silme ve çizim alanına text ekleme işlemlerini bu kadar kısa bir sürede projemize eklemiş olduk. Sonuçlarımıza bakalım;

 

Çizim

Silme

Text Ekleme

Text Ekleme

Teşekkürler :)

 

Samsung Smart App Challenge 2013 for Galaxy Note

Sosyal Profiller

Chart