На мой взгляд самые главные интернет ресурсы
10 инструментов эффективной работы, или Забудьте о многозадачности
[Павел Обод — основатель Growth Factory — обучающей платформы для IT-предпринимателей, организатор конференции Outsource People, CEO Sloboda Studio — RoR agency]
О принципах эффективного планирования времени можно почитать в предыдущем материале о личной эффективности. Тут мы сосредоточимся на инструментах, которые помогают выполнить запланированное.
TelephonyManager
package amurdroid.myapp17092; import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { MediaPlayer mPlayer; Button startButton, pauseButton, stopButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mPlayer=MediaPlayer.create(this, R.raw.ase); mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { stop(); } }); startButton = (Button) findViewById(R.id.start); pauseButton = (Button) findViewById(R.id.pause); stopButton = (Button) findViewById(R.id.stop); pauseButton.setEnabled(false); stopButton.setEnabled(false); PhoneStateListener phoneStateListener = new PhoneStateListener() { @Override public void onCallStateChanged(int state, String incomingNumber) { if (state == TelephonyManager.CALL_STATE_RINGING) { if(mPlayer!=null){//check mp if(mPlayer.isPlaying()){ mPlayer.pause(); } } } else if(state == TelephonyManager.CALL_STATE_IDLE) { mPlayer.start(); } else if(state == TelephonyManager.CALL_STATE_OFFHOOK) { if(mPlayer!=null){//check mp if(mPlayer.isPlaying()){ mPlayer.pause(); } } } super.onCallStateChanged(state, incomingNumber); } };//end PhoneStateListener TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); if(mgr != null) { mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); } } private void stop(){ mPlayer.stop(); pauseButton.setEnabled(false); stopButton.setEnabled(false); try { mPlayer.prepare(); mPlayer.seekTo(0); startButton.setEnabled(true); } catch (Throwable t) { Toast.makeText(this, t.getMessage(), Toast.LENGTH_SHORT).show(); } } public void startAudio(View view){ mPlayer.start(); startButton.setEnabled(false); pauseButton.setEnabled(true); stopButton.setEnabled(true); } public void pauseAudio(View view){ mPlayer.pause(); startButton.setEnabled(true); pauseButton.setEnabled(false); stopButton.setEnabled(true); } public void stopAudio(View view){ stop(); } @Override public void onDestroy() { super.onDestroy(); if (stopButton.isEnabled()) { stop(); } } }
ScrollView
Если ваш макет экрана достаточно большой и все его элементы не помещаются на экране по вертикали, то самое подходящее — использовать контейнер ScrollView, внутрь которого вы можете поместить нужный layout с дочерними элементами. При этом просмотреть все имеющиеся элементы позволит полоса прокрутки.
Как сказано в документации, ScrollView — это FrameLayout, а это значит, что он может содержать только один дочерний элемент. Обычно этим элементом является какой-то LinearLayout с вертикальной ориентацией, который содержит все остальные элементы экрана.
Важно отметить, что для элементов ListView вам не нужно создавать прокрутку, т.к. здесь она появляется автоматически при необходимости.
Используем для текста HTML оформление
Используем для текста HTML оформление
| Главная » Используем для текста HTML оформление | |
В
этом кратком уроке мы научимся делать вот такую полезную штуку -
использовать для любого текстового элемента TextView в нашем приложении
заданный с помощью HTML вид. Это может пригодиться для того, чтобы не
настраивать каждый раз новый текстовый элемент с нуля, а просто
применить к нему готовый стиль. Также этот прием понравиться знатока HTML, которым проще работать именно с этим кодом.
Создаем новый проект с Blank Activity. Первым делом в файле activity_main.xml создадим текстовый элемент для экспериментов:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv"
android:text="Пример текста"/>
</LinearLayout>
Теперь откроем файл, хранящий строковые ресурсы - strings.xml. Именно здесь мы и создадим необходимый нам шаблон текста с помощью HTML:
<string name="info"><![CDATA[
<font color="#4713f2"><b><i>HTML</b></font> - язык гипертекстовой разметки
</i><br></br>]]>
</string>
Как видите, мы создали довольно экзотическую для Android программирования строку с помощью вот такой команды:
<![CDATA[ помещаем сюда html-код ]]>
Внутри этой строки пишем необходимый HTML код без каких либо изменений и он отобразиться как нужно.
Осталось нужным образом отредактировать MainActivity.java:
import android.app.Activity;
import android.os.Bundle;
import android.text.Html;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Объявляем объект TextView и привязываем к нашему элементу:
TextView Htext = (TextView) findViewById(R.id.tv);
//Создаем строковый ресурс и задаем ему значение с нашей строки "example":
String infoText = getResources().getString(R.string.example);
//Настраиваем строке HTML текст:
Htext.setText(Html.fromHtml(infoText));
}
}
Вот и все! Запускаем приложение и смотрим на результат:
![]() | |
Добавляем в приложение диаграммы с помощью MPAndroidChart
Если
ваше приложение работает с большими объемами информации, то может
возникнуть нужда в их приятном представлении. Для этого можно
использовать разные методы: таблицы, графики, диаграммы. Сегодня мы
научимся, как добавлять в Android приложение диаграммы, используя
библиотеку MPAndroidChart. Диаграммы этой библиотеки удобны, легки в настройке и даже интерактивны.
Для того, чтобы использовать библиотеку MPAndroidChart для начала ее нужно скачать вот отсюда, а потом скопировать файл библиотеки в папку libs вашего проекта, нажать в Android Studio правым кликом мышки по файлу JAR библиотеки и выбрать Add as Library и подождать пока все добавится.
|
Интересное про андроид
В
наше время операционная система Android у нас на глазах выбивается в
лидирующую ОС для мобильных устройств по всему миру. Конечно, у нее есть
достойные конкуренты, в основном Apple, но учитывая доступность
устройств на Android по сравнению с iPhone, можно предположить что в
скором времени Android одолеет противника.
|
Поиск в ListView
Добавляем функцию поиска к ListView
В сегодняшнем уроке мы поработаем с уже знакомым нам элементом ListView и
добавим обычному ListView поиск, который будет упрощать обращение
пользователя с пунктами списка. При вводе в строку списка будет
происходить фильтрование элементов, отображаемых в списке и выдача
только тех, которые соответствуют запросу.
|
живые обои
В
этом уроке мы научимся создавать живые обои для Android устройства,
используя для этого обычную gif анимацию. Конечно, есть и другой способ
создания живых обоев, с использованием собственных изображений,
математических подсчетов и собственноручно созданной анимации, и его мы
как нибудь тоже рассмотрим, но это занимает много сил, времени и требует
от создателя творческого мышления, попробуй ка выдумай что нибудь
толковое. Но мы пойдем намного более легким путем и сделаем собственные
живые обои из обыкновенной gif анимации.
Начнем
с того, что подготовим анимацию для наших живых обоев. Конечно, вы
можете найти любую анимацию которая вам понравится и использовать ее, но
если вам день это делать - качайте эту.
Создаем новый
проект, все названия файлов можете оставлять по умолчанию, можете
вводить свои, как вам удобно. Минимальную версию Android выберем 2.2
Froyo, а при выборе activity выбираем Add No Activity и жмем финиш.
|
Подписаться на:
Комментарии (Atom)
