вторник, 19 июня 2012 г.

Батл Samsung Galaxy S3 vs HTC One X

Хочу к концу лета взять себе новый телефон вот думаю между Samsung Galaxy S3 или HTC One X. Оба аппарата довольно интересные , но безусловно у каждого есть свои плюсы и минусы
Далее хочу представить обзор в котором сравниваются данные аппараты.



P.S Лично я наверно склонюсь все таки к Samsung Galaxy S3 , так как у него более емкая батарея , что для меня немаловажно , а у HTC как обычно больное место батарея :( . Хотя может к концу лета выйдет более интересный вариант и буду уже рассматривать его.

понедельник, 18 июня 2012 г.

Создание Splash


Необходимой часть приложения является Splash , который является заставкой в нашем приложении. Вот пример который можете использовать в своем приложении:

public class Splash extends Activity{

   private final int SPLASH_DISPLAY_LENGTH = 4000;  

   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
         super.onCreate(savedInstanceState);  
         requestWindowFeature(Window.FEATURE_NO_TITLE);  
         setContentView(R.layout.splash);  
         
         new Handler().postDelayed(new Runnable() {  
            @Override
              public void run() {  
                 Intent mainIntent = new Intent(Splash.this,Main.class);                   Splash.this.startActivity(mainIntent);  
                 Splash.this.finish();  
              }  
         },SPLASH_DISPLAY_LENGTH);
   } 
}
 
Тут константа SPLASH_DISPLAY_LENGTH задается для определения времени показа данной Activity. Также мы указываем наш layout.

    Intent mainIntent = new Intent(Splash.this,Main.class);  
    Splash.this.startActivity(mainIntent);  
    Splash.this.finish(); 

Здесь переход от Splash к Main Activity. Работу с Intent мы разбирали в предыдущем уроке

P.S картинка Splash которая используется в данном уроке относится к первому приложению которое я написал на данной платформе, однако до сих пор не выложил в маркет :)  

воскресенье, 17 июня 2012 г.

Работа с Intent

Intent класс в Android который позволяет обмениваться данными между разными Activity внутри конкретного приложения , а также между приложениями в самой системе. Для того чтобы перейти от Activity1 к Activity2 необходимо выполнить следующее

Intent testIntent = new Intent(Activity1.this,Activity2.class);
startActivity(testIntent);


Часто нужно передать данные между Activity поэтому в данном классе предусмотрены методы putExtra (String name, Parcelable[] value) и много методов для извлечения данных в зависимости от типа передаваемых данных. Давайте рассмотрим следующий пример :

String login = "Bart";
testIntent.putExtra("login",login);


Здесь мы ложим в наш testIntent переменную типа String. Для того чтобы теперь Activity2 получило данные которые "лежат" в testIntent необходимо использовать метод getStringExtra

String username;
Intent testIntent = getIntent();
username = testIntent.getStringExtra("login");


Также с помощью Intent можно делать более глобальные вещи. К примеру можно позвонить по определенному номеру, отправить смс, открыть ссылку в браузере и т.д. Для того чтобы позвонить необходимо написать следующее

Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "123456789"));
startActivity(dialIntent)

Также необходимо указать в AndroidManifest.xml permission для совершения данного действия

<uses-permission android:name="android.permission.CALL_PHONE" />

Для вызова стандартного активити для отправки смс:

Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("sms_body", "Some SMS text");
startActivity(smsIntent);


Для открытия ссылки в браузере :

Intent browseIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(browseIntent);


При этом приложение предложит выбрать браузер в котором просматривать данную ссылки. Если это будет ссылка на YouTube то можно будет открыть через него. На этом наверно завершу знакомство Intent. Хочу сказать что это далеко не все возможности класса Intent. Более подробно поговорим в последующих уроках.