я использовал тостов в моих андроид проектов для отображения текста . Могу ли я использовать тосты для отображения image всплывающее сообщение. Если да, то кто-то может дать мне полезный сегмент кода. Спасибо!показать изображение в тосте
ответ
Создайте файл «toast.xml» в папке/RES/макета и скопируйте следующее содержимое в файл и сохранить файл.
<ImageView android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="1dp" />
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="4dp"
android:textColor="#FFF" />
</LinearLayout>
В папке же/Рез/макет вы должны создать roundborder.xml файл, в котором расположение фона расположен. В этом случае круглая граница с некоторой фоновой прозрачностью.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="4dp" />
<padding android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp" />
<solid android:color="#CC4D404D" />
<stroke android:width="2dp" android:color="#CC8D808D" />
</shape>
Тост-макет будет доступен через класс R. Теперь нам нужно создать представление с макетом тоста. Для этого нам нужно раздуть xml-файл. Имя файла xl используется как первый аргумент R.layout.toast. В качестве второго аргумента используется идентификатор LinearLayout.
Посмотреть toastView = getLayoutInflater() раздуть (R.layout.toast, (ViewGroup) findViewById (R.id.toastLayout)).
Далее мы должны назначить изображение ImageView и сообщение (отображаемое) в TextView. В качестве изображения можно использовать либо идентификатор ресурса, либо растровое изображение.
ImageView imageView = (ImageView)toastView.findViewById(R.id.image);
imageView.setImageResource(R.drawable.icon);
// imageView.setBackgroundDrawable(bitmapDrawable);
TextView textView = (TextView)toastView.findViewById(R.id.text);
textView.setText("Yes, a Toast with an image!");
Наконец, нам необходимо создать и отобразить Toast, и мы закончили.
Toast toast = new Toast(context);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(toastView);
toast.show();
Вы можете увидеть мой пример кода по этой ссылке: https://github.com/Hesamedin/CustomToast
Самый важный класс this class который рольганг из класса Toast и модифицировали его.
Затем использовать его в обычном порядке, как использование Toast, как это:
btnCustomToast = (Button) findViewById(R.id.btnCustomToast);
btnCustomToast.setTypeface(pacificoFont);
btnCustomToast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyToast.makeText(getApplicationContext(), "This is custom toast message.", Toast.LENGTH_LONG).show();
}
});
Как я заметил в this темы вы можете использовать мою SuperToasts библиотеку, если вы не чувствуете, как создать свой собственный Toast View. Вы можете легко отображать изображение со следующим кодом:
SuperToast superToast = new SuperToast(getActivity());
superToast.setDuration(SuperToast.DURATION_LONG);
superToast.setText("Hello world!");
superToast.setIconResource(R.drawable.image, SuperToast.IconPosition.LEFT);
superToast.show();
Библиотека также поставляется с кучей иконок уже сделано и имеет кучу настраиваемых параметров, такие как анимация, фоны, цвет текста и т.д. В качестве альтернативы вы можете использовать SuperActivityToasts, если вам нужно использовать Toast в рамках Activity, который даст вам доступ к кнопкам с кликом, индикаторы выполнения, увольнение слушателей и т. Д.
Эй, хорошая работа с ** библиотекой SuperToasts **. Я люблю это. Большое спасибо !!!!! –
упс! У меня проблемы. Когда я использую SuperToast внутри фрагмента, приложение получает остановку. в чем причина этого и как я могу это исправить. –
Вы должны использовать Контекст активности для SuperActivityToast. Что скажет стопка? –
Его можно сделать с тостами
Код: Добавить это в части кода
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.like_popup, (ViewGroup) activity.findViewById(R.id.like_popup_layout));
ImageView imageView = (ImageView) layout.findViewById(R.id.like_popup_iv);
imageView.setBackgroundResource(R.drawable.white_delete_icon);
Toast toast = new Toast(activity.getApplicationContext());
toast.setGravity(Gravity.BOTTOM, 0, 200);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
Дизайн: like_popup.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cred_menu_like_popup_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/customshapetransparent"
android:paddingTop="35dp"
android:paddingBottom="25dp"
android:paddingLeft="35dp"
android:paddingRight="35dp"
>
<ImageView
android:id="@+id/like_popup_iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>
Дизайн: customshapetransparent.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#60000000" />
<corners android:radius="8dp" />
</shape>
H ope это даст вам то, что вы хотите достичь
Вы можете создать собственное диалоговое окно и использовать анимацию, чтобы она выглядела в затухающем движении, точно так же, как тост –
http://learnandroideasily.blogspot.in/2013/05/android -custom-toast.html Проверьте это. – Dhaval
yep. Я могу использовать специальный диалог. Но то, что мне нужно, это сообщение должно исчезнуть за короткое время в качестве тоста. я могу сделать это с помощью специального диалога. –