При написании одного приложения мне нужно было что бы при ошибке приложения появлялось окно в котором было бы пояснение этой ошибки, и я задался вопросом как бы так сделать что бы оно работало как обычный MessageBox в C++/C#. Такое окно имеет вид:
Скриншот №1
Для того что бы его получить достаточно использовать библиотеку Toast — для отображения окна и Gravity — для расположения сообщения на экране. Для того что бы такое сделать — создаем проект в Eclipse и открываем наш main.xml, удаляем все что там есть и вставляем вот этот код:
main.xml__________________________________________________________________
Это мы создали форму которая на скришоте выше. Теперь открываем наш файл *.java в моем случае это buttonActivity.java и пишем вот такое:
buttonActivity.java_______________________________________________________
Это мы рассмотрели обычное оформление, но есть возможность добавить картинку которая будет сопровождать текст и будет облегчать восприятие сообщения, будь то ошибка или примечание. Ниже скриншот того что получится:
Скриншот №2
Для добавления изображения в наше сообщение потребуется программно создать объект класса ImageView и задать для него изображение из ресурсов с помощью метода setImageResource. Затем потребуется получить стандартный внешний вид сообщения и добавить в него созданный объект ImageView с указанием, в какую позицию добавить изображение, в нашем случае указана нулевая позиция, чтобы изображение было добавлено выше текста. Код для создания этого окна с изображением представлен ниже.
Добавляем библиотеки:
и заменяем код в onClick() на:
и запускаем наше приложение, если сделали все правильно то должно выйти то что показано на скришоте №2.
Статью опубликовал по просьбе пользователя yota9. Если есть какие-либо ошибки в коде или есть вариант проще пишите в комментариях, буду рад узнать что-то проще.
Скриншот №1
Для того что бы его получить достаточно использовать библиотеку Toast — для отображения окна и Gravity — для расположения сообщения на экране. Для того что бы такое сделать — создаем проект в Eclipse и открываем наш main.xml, удаляем все что там есть и вставляем вот этот код:
main.xml__________________________________________________________________
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Жмякни мну" />
</LinearLayout>
Это мы создали форму которая на скришоте выше. Теперь открываем наш файл *.java в моем случае это buttonActivity.java и пишем вот такое:
buttonActivity.java_______________________________________________________
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class page extends Activity implements OnClickListener
{
Button mButton;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.button1);
mButton.setOnClickListener(this);
}
public void onClick(View a)
{
Toast toast = Toast.makeText(getApplicationContext(), "Этот текст будет появляться неоткуда!", Toast.LENGTH_LONG);//задает выравнивание, остальные два параметры задают, на сколько пикселей будет смещено сообщение
toast.setGravity(Gravity.CENTER, 0, 0); // координаты сообщения
toast.show();
}
}
Это мы рассмотрели обычное оформление, но есть возможность добавить картинку которая будет сопровождать текст и будет облегчать восприятие сообщения, будь то ошибка или примечание. Ниже скриншот того что получится:
Скриншот №2
Для добавления изображения в наше сообщение потребуется программно создать объект класса ImageView и задать для него изображение из ресурсов с помощью метода setImageResource. Затем потребуется получить стандартный внешний вид сообщения и добавить в него созданный объект ImageView с указанием, в какую позицию добавить изображение, в нашем случае указана нулевая позиция, чтобы изображение было добавлено выше текста. Код для создания этого окна с изображением представлен ниже.
Добавляем библиотеки:
import android.widget.ImageView;
import android.widget.LinearLayout;
и заменяем код в onClick() на:
public void onClick(View a)
{
Toast toast = Toast.makeText(getApplicationContext(), "Все тот же текст", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
LinearLayout toastView = (LinearLayout) toast.getView();
ImageView imageWorld = new ImageView(getApplicationContext());
imageWorld.setImageResource(R.drawable.ic_launcher);
toastView.addView(imageWorld, 0);
toast.show();
}
и запускаем наше приложение, если сделали все правильно то должно выйти то что показано на скришоте №2.
Статью опубликовал по просьбе пользователя yota9. Если есть какие-либо ошибки в коде или есть вариант проще пишите в комментариях, буду рад узнать что-то проще.
Комментариев нет:
Отправить комментарий