Показаны сообщения с ярлыком Android Studio. Показать все сообщения
Показаны сообщения с ярлыком Android Studio. Показать все сообщения

четверг, 16 июля 2015 г.

Android Studio на SSD

Маю ноутбук HP envy 4-1152er з SSD диском, але на жаль він всього-на-всього на 32GB і так вийшло, що Android Studio займає занадто багато місця. Якщо у вас така ж проблема то зараз ви дізнаєтесь як з цим боротися.
Android Studi встановлюємо на диск D.

SDK

1. SDK переносимо на диск D, в зручну для вас директорію, в мене це D:\Program Files\android-sdk.
2. В налаштуваннях за допомогою пошуку знаходимо наш sdk і змінюємо на нову.
3. Зберігаємо налаштування:


четверг, 7 августа 2014 г.

4. Кнопка, ресурси, xml

Зовнішній вид нашої кнопки бажає кращого. Сьогодні ми трохи над нею попрацюємо.
Є у нас така-собі звичайна кнопка, нічим не примітна, ніяк не виділяється. Виглядає ось так:


А описана ось так:

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Play"
        android:id="@+id/button"
        android:layout_below="@+id/imageView"
        android:onClick="pause"
        android:layout_centerHorizontal="true"
        />

Трохи видозмінимо її. Для початку додамо декілька ресурсів: розмір тексту в файл dimens.xml і сам текст, якщо він у вас ще не там в strings.xml.

<dimen name="btnTextSize">24sp</dimen>
<string name="Play">Play</string>

sp — Scale-independent Pixels одиниця виміру, що основана на відношенні діагоналі екрану до його роздільної здатності та на системних налаштуваннях розміру шрифту.


 <Button
        android:textStyle="italic|bold"                 курсив
        android:textSize="@dimen/btnTextSize"    посилання на ресурс розміру шрифту
        android:gravity="center|center_vertical"  положення тексту зліва, вертикально по центру
        android:layout_width="match_parent"      заповнити "предка"
        android:layout_height="wrap_content"     розмір відносно вмісту кнопки
        android:text="@string/Play"                    посилання на ресурс тексту
        android:id="@+id/button"                       створення посилання на кнопку
        android:layout_below="@+id/imageView"   знизу відносно зображення
        android:onClick="pause"                         виклик методу після натискання
        android:layout_centerHorizontal="true"     розміщення горизонтально посередині
        />

Завантажимо декілька зображень. Перше переіменовуємо на rama.9.png. Це особливий тип зображень nine-patch drawable, що може змінювати свою форму відносно зображення, тобто розтягуватися в залежності від потреб, зазвичай використовується як фон. Саме так ми його і будемо використовувати. Зберегти це зображення необхідно в одну з папок drawable.
Наступне зображення помістимо в drawable-hdpi і назвемо його musicico.png.




<Button
        android:background="@drawable/rama"              посилання на ресурс рамки
        android:drawableLeft="@drawable/musicico"        посилання на ресурс іконки
        android:textStyle="italic|bold"
        android:textSize="@dimen/btnTextSize"
        android:gravity="center|center_vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/Play"
        android:id="@+id/button"
        android:layout_below="@+id/imageView"
        android:onClick="pause"
        android:layout_centerHorizontal="true"

        />

Задамо відступ в нашому RelativeLayout щод кнопка не зливалася з краями екрану і все не виглядало так дико і потворно.

android:padding="6dp"

dp - Density-independent pixel міра що задає однакове маштабування на різних пристроях, заснована на тому ж відношенні діагоналі і роздільної здатності. Звичайно, ми може вказати px (pixel) але тоді на кожному пристрої буде різний відступ. На одних пристроях замалий, а на інших завеликий.

Вже не погано, але можна краще. Кнопка може бути "не натиснутою", "натиснутою", і "в фокусі" (натиснутою в даний момент, коли ви тримаєте на ній палець). Але біда в тому, що ми не можемо в тексті одної кнопки вказувати background декілька разів. Отже доведеться створити окремий файл background для кнопки. 
В папці drawable створимо файл button_background.xml. res->new->android resourse file тип drawable, кореневий ресурс - selector.





<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/pressed" android:state_pressed="true" />
    <item android:drawable="@drawable/infocus" android:state_focused="true" />
    <item android:drawable="@drawable/rama" />


</selector>

і точно те ж саме зробимо для іконки

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

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/musicico_inv" android:state_pressed="true" />
    <item android:drawable="@drawable/musicico" />

</selector>

Текст залишається чорним і не читається не темному фоні. Зробимо файл-ресурс і для кольору. why not?
В каталог color додаємо файл text_color.xml з таким вмістом.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@android:color/white" android:state_pressed="true" />
    <item android:color="#484848" />
</selector>

Кнопка виглядає так:

  <Button
        android:textColor="@color/text_color"
        android:background="@drawable/button_background"
        android:drawableLeft="@drawable/button_image"
        android:textStyle="italic|bold"
        android:textSize="@dimen/btnTextSize"
        android:gravity="center|center_vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/Play"
        android:id="@+id/button"
        android:layout_below="@+id/imageView"
        android:onClick="pause"
        android:layout_centerHorizontal="true"
        />

Вийшло багатувато тексту. А якщо трба зробити 10 таких кнопок? Ну його в баню стільки писати. Перенесемо весь цей непотріб в стиль.


Після таких маніпуляцій текст кнопки скоручується до невпізнанності.

<Button
        android:text="@string/Play"
        android:id="@+id/button"
        android:onClick="pause"
        style="@style/btn_style" />

Все що можна ми винесли до стилю.

<style name="btn_style">
        <item name="android:textColor">@color/text_color</item>
        <item name="android:background">@drawable/button_background</item>
        <item name="android:drawableLeft">@drawable/button_image</item>
        <item name="android:textStyle">italic|bold</item>
        <item name="android:textSize">@dimen/btnTextSize</item>
        <item name="android:gravity">center|center_vertical</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_below">@+id/imageView</item>
        <item name="android:layout_centerHorizontal">true</item>
    </style>

і отже при додаванні наступної подібної кнопки нам не треба писати все занова, просто додамо

style="@style/btn_style"

і все готово.

Да прибуде з вами сила.



3. Android - Аудіо, Текст


Продовжуємо творити прекрасне. В минулому уроці у нас був створений перший додаток настільки крутий, що крім тексту міг показувати ще й зображення. Сьогодні спробуємо додати аудіо. Такий-собі рагульний плеєр. Для сміху.
У нас є лінк на аудіотрек. Завантажуємо. В проекті створюємо папку з назвою "raw", і копіюємо туди наш файл. Додаємо на activity_my.xml кнопку, на якій пишимо "Play", при натисканні на яку буде включатися наша завантажена мелодія, і пауза після повторного натискання. Відкриваємо файл MyActivity.java і додаємо в початок класу такі змінні:

    MediaPlayer song; // екземпляр класу пісні
    Button btn;// екземпляр кнопки

В методі onCreate() додамо значенння цим посиланням.

        song = MediaPlayer.create(this,R.raw.war); // war - ім'я нашого аудіофайлу
        btn = (Button) findViewById(R.id.button); // button - ім'я кнопки

далі створимо метод:

        public void pause(View view){
                if(song.isPlaying()) {
                    song.pause();
                    btn.setText("Play");
                }
                 else{
                     song.start();
                     btn.setText("Pause");
                 }
            }
Додамо можливість зупинити музику при покиданні додатку. Для цього нам необхідно перевизначити метод onPause().

    @Override
    protected void onPause() {
        super.onPause();
        song.stop();
    }
В кнопку, в файлі activity_my.xml, додамо рядок, що відповідатиме за виклик методу запуску музики:

          android:onClick="pause"

Запускаємо.
Перевіряємо.

Не погано було б додати текст до нашої пісні. Перш за все створимо в файлі strings.xml ресурс під назвою lyrics з текстом пісні. Не забуваємо відмітити всі недопустимі символи.

В файлі activity_my.xml створимо TextViev для перегляду тексту пісні, та завчасно помістимо його в ScrolView, щоб забезпечити можливість прокрутки тексту.

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/button"
    android:id="@+id/scrollView"
    android:onClick="translateOnClic">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/lyrics"
        android:id="@+id/textView2"
        android:textSize="18dp"
        android:layout_below="@+id/button"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignRight="@+id/scrollView"
        android:layout_alignEnd="@+id/scrollView" />
</ScrollView>

Виглядає непогано, як для новачків, але що ж в горизонтальному положенні? Біда. Але і для цього є вихід.


Створимо окремий файл для альбомного виду нашого додатку. Для цього на папці "res" правою кнопкою "New" -> "resoursse file". Файл назвати точно так же як і вже існуючий для вертикальної (портретної) орієнтації екрану і помістити в папку layout-land. Копіюємо всі елементи з уже існуючого файлу і налаштовуємо під горизонтальну орієнтацію.
Перевіряємо.
Готово.
Все.
Радий був для вас старатися.



среда, 23 июля 2014 г.

1. Android "Те про що пишуть всі і на чому, в основному, і закінчується жага до викладальницької діяльності

Ти хочеш створювати програми на Android тому що це в тренді, популярно і престижно. Ти або знаєш вже Java або тільки вивчаєш, або ще ні. Вчити Java тобі доведеться все-одно, бо без неї нікуди не подінешся в нашій тяжкій справі программерів.
З чого почати навчання? З встановлення необхідного програмного забезпечення, на кшталт: середовище розробки (Eclipse, IDEA), JDK, альтернативна віртуальна машина відмінна від стандартної (Genimotion, Jar of Beans, Native Android Emulator, YouVawe, BlueStacks). Цим і займемося сьогодні.
Не бачу сенсу описувати супердетально процес встановлення програм. Приведу лінки та порядок встановлення.
1. JDK
Переходимо за посиланням, вибираємо вашу операційну систему, скачуєму. Процес встановлення стандартний ("Згоден", "Далі", "Далі", "Готово")
2. ADT
Можна скачати просто ADT і налагодити для роботи з Eclipse, IDEA чи чимось іншим на ваш розсуд. Я рекомендую Android Studio, хоча дане ПО зараз і знаходиться в бета тесті, але воно має багато переваг перед конкурентами.
"Завантажити" - "Встановити"

3. Genymotion
Genymotion на відміну від стандартного емулятора працює на базі VirtualBox за рахунок чого і являється швидшим, а також має багато додаткових функцій в розробці, що можуть виявитися корисними в розробці та тестуванні ваших шедеврів.
a) Завантажуємо і встановлюємо VirtualBox.
b) Заходимо на головну Genymotion, реєструємось (важливо вибрати пункт, для власного користуванн, тобто безкоштовний варіант, для початку і цього вистачить, якщо вам сподобається даний емулятор то пізніше зможете купити), підтверджуємо реєстрацію, завантажуємо ПО, стандартне встановлення. Тепер вибираємо віртуальні девайси, що вам необхідні для тестуванн - Genymotion все завантажить та встановить.
c) Налагодження в Android Studio емулятора.
Тут неочікувано нам необхідно створити нашу першу програму. Вибираємо все за стандартом. "Далі"-"Далі"-"Готово"
І ось тут момент з налагодженням Genymotion. Run->Edit Configurations->General->Target Device->Show Chooser Dialog або USB Device. В першому випадку вам запропонують вибрати з запропонованого переліку можливих пристроїв, будь то віртуальні девайси вбудованого емулятора, реальні підключені пристрої чи створений наш в Genimotion. (Перед запуском додатку необхідно запустити віртуальний пристрій.) 
Натискаємо на клавішу Run (зелений трикутник) і перед нами з'являється вікно вибору. Вибираємо наш пристрій і вуаля - все працює швидко, круто і красиво.

Дякую за увагу.

Ліниві курси Android.