Camera
Camera'nın olup olmadığı şöyle kontrol edilir.
Dalvik
Android işletim sistemi Dalvik Virtual Machine'i kullanıyor. Dalvik "register based" bir virtual machine, JVM ise "stack based" bir virtual machine. Yan, Dalvik üzerinde çalıştığı donanımda çok daha fazla sayıda donanım register'ı olduğunu farz ediyor.
Layout
Bir çok layout çeşidi var. Bazıları şunlar.
layout_width
Hem layout hem de widget'lar için kullanılır. match_parent ile nesnenin tüm layout'u yatay olarak doldurması sağlanır. wrap_content ise nesne içerdiği metin kadar büyür.
TextView : Metin göstermek için kullanılır. View'dan kalıtır. XML'i şuna benzer. XML ile bir metin değer atanabilir.
EditText Sınıfı yazısına taşıdım.
Activity
Activity yazısına taşıdım.
Intent
Intent yazısına taşıdım.
IntentFilter
IntentFilter BroadcastReceiver ile kullanılabilir. BroadcastReceiver filtreden geçen intent'leri işler. Örnekte cihazın kapanmasını işleyen bir sınıf görülebilir. Önce bir receiver ve filter tanımlıyoruz.
Bundle
Bundle iki activity arasında veri geçirmek için kullanılır. Her Intent içinde bir Bundle nesnesi barındırır.
putExtra/getExtras
Inten sınıfının putEtra()/getExtras() ile Bundle nesnesine erişilir. İlk intent ikinci intent için bundle'ı doldurur.
Kullanım şekli putExtra/getExtras() ile aynı. Eklemek için
Android Service
IntentService kullanılır. Örnek:
Farklı dillere çevrim yapmak istersek kolayca yapabilmek için string'leri xml'e koymak gerekir. Default İngilizce xml dosyası values/strings.xml dosyasıdır.
Farklı bir ülke için örneğin Fransa için
values-fr/strings.xml altına dosya yaratmak gerekir.
SMS Push
Nasıl yapılır bilmiyorum ama SMS gelince notification göstermek mümkün.
SMS Gönderme
SMS gönderebilmek için AndroidManifest.xml dosyasında şu satırın olması gerekir.
<uses-permission android:name="android.permission.SEND_SMS" />
Camera'nın olup olmadığı şöyle kontrol edilir.
boolean checkCameraExists(Context context) {
if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){
// this device has a camera
return true;
} else {
// no camera on this device
return false;
}
}
Camera nesnesi şöyle elde edilir.public static Camera getCameraInstance(){
Camera c = null;
try {
c = Camera.open(); // attempt to get a Camera instance
}
catch (Exception e){
// Camera is not available (in use or does not exist)
}
return c; // returns null if camera is unavailable
}
Resim çekilince Camera.PictureCallback çağrılırcamera.takePicture(null, null, new Camera.PictureCallback () {
@Override
public void onPictureTaken(final byte[] data, Camera camera) {
}
});
Dalvik
Android işletim sistemi Dalvik Virtual Machine'i kullanıyor. Dalvik "register based" bir virtual machine, JVM ise "stack based" bir virtual machine. Yan, Dalvik üzerinde çalıştığı donanımda çok daha fazla sayıda donanım register'ı olduğunu farz ediyor.
Layout
Bir çok layout çeşidi var. Bazıları şunlar.
- LinearLayout - dikey (vertical) kullanılırsa bileşenleri alt alta satırlar halinde gösterir. Yatay kullanılırsa (horizontal) bileşenleri yanyana gösterir.
- RelativeLayout - Bileşeni tam olarak belirtilen yere - başka bir bileşenin solu, sağı, altı, üstü gibi-yerleştirir.
- Table Layout - Satır ve sütunlar şeklinde tabloya yerleştirir. İlginç bir şekilde içine kaç satır ve sütun yerleştirileceği xml'de belirtilmiyor. TableLayout düğümü içindeki alt düğümler sayılarak hesaplanıyor.Örnek:
<TableLayout android:layout_width="match_parent" android:layout_height="match_parent" android:stretchColumns="0" android:shrinkColumns="1" android:id="@+id/attibutesLayout"> </TableLayout>
layout_width
Hem layout hem de widget'lar için kullanılır. match_parent ile nesnenin tüm layout'u yatay olarak doldurması sağlanır. wrap_content ise nesne içerdiği metin kadar büyür.
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"/>
Bazı Widget'larTextView : Metin göstermek için kullanılır. View'dan kalıtır. XML'i şuna benzer. XML ile bir metin değer atanabilir.
<TextView
android:id="@+id/txtTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="http://"
android:textColor="@android:color/darker_gray" />
EditTextEditText Sınıfı yazısına taşıdım.
Activity
Activity yazısına taşıdım.
Intent
Intent yazısına taşıdım.
IntentFilter
IntentFilter BroadcastReceiver ile kullanılabilir. BroadcastReceiver filtreden geçen intent'leri işler. Örnekte cihazın kapanmasını işleyen bir sınıf görülebilir. Önce bir receiver ve filter tanımlıyoruz.
<receiver android:name="MyReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_SHUTDOWN"/>
</intent-filter>
</receiver>
Daha sonra sınıfı yazıyoruz.public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
//Get system time here and log wherever you like.
}
}
IntentFilter activity ile de kulllanılabilir. Activity şöyle tanımlanır<activity
android:name=".YourActivity" >
<intent-filter>
<action android:name="your.custom.ACTION" />
<categoty android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Daha sonra Intent şöyle çağırılır.startActivity(new Intent("your.custom.ACTION"));
Bundle
Bundle iki activity arasında veri geçirmek için kullanılır. Her Intent içinde bir Bundle nesnesi barındırır.
putExtra/getExtras
Inten sınıfının putEtra()/getExtras() ile Bundle nesnesine erişilir. İlk intent ikinci intent için bundle'ı doldurur.
Intent intent = new
Intent(getApplicationContext(),SecondActivity.class);
intent.putExtra("myKey",AnyValue);
startActivity(intent);
İkinci intent getExtras() metodu ile bundle'a erişiri ve okur.Bundle extras = intent.getExtras();
String tmp = extras.getString("myKey");
putStringArrayListExtra/getStringArrayListExtraKullanım şekli putExtra/getExtras() ile aynı. Eklemek için
intent.putStringArrayListExtra(ITEMS, list);
Almak içinList<String> items = getIntent().getStringArrayListExtra(ITEMS);
Android Service
IntentService kullanılır. Örnek:
public class ReviewCheckService extends IntentService {
public ReviewCheckService() {}
@Override
protected void onHandleIntent(Intent intent) {
}
}
Strings XMLFarklı dillere çevrim yapmak istersek kolayca yapabilmek için string'leri xml'e koymak gerekir. Default İngilizce xml dosyası values/strings.xml dosyasıdır.
<resources>
<string name="title">My Application</string>
<string name="hello_world">Hello World!</string>
</resources>
Farklı bir ülke için örneğin Fransa için
values-fr/strings.xml altına dosya yaratmak gerekir.
SMS Push
Nasıl yapılır bilmiyorum ama SMS gelince notification göstermek mümkün.
SMS Gönderme
SMS gönderebilmek için AndroidManifest.xml dosyasında şu satırın olması gerekir.
<uses-permission android:name="android.permission.SEND_SMS" />
Hiç yorum yok:
Yorum Gönder