我在 android 项目中使用了 toast 来显示文字。我可以使用 toast 来显示图片弹出消息。如果是这样,有人可以给我一些有用的代码段。谢谢!
答案 0 :(得分:4)
在/ res / layout文件夹中创建文件'toast.xml',并将以下内容复制到文件中并保存文件。
<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>
在同一个/ res / layout文件夹中,您必须创建一个 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>
Toast布局将通过R类提供。现在,我们必须使用toast布局创建一个View。为此,我们必须膨胀xml文件。 xl文件的名称用作第一个参数R.layout.toast。作为第二个参数,使用了LinearLayout的id。
查看toastView = getLayoutInflater()。inflate(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();
答案 1 :(得分:1)
您可以通过此链接查看我的示例代码: 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();
}
});
答案 2 :(得分:1)
正如我在this帖子中所评论的那样,如果您不想创建自己的Toast View,则可以使用我的SuperToasts库。您可以使用以下代码轻松显示图像:
SuperToast superToast = new SuperToast(getActivity());
superToast.setDuration(SuperToast.DURATION_LONG);
superToast.setText("Hello world!");
superToast.setIconResource(R.drawable.image, SuperToast.IconPosition.LEFT);
superToast.show();
该库还附带了一组已制作的图标,并有一系列可配置的选项,如动画,背景,文本颜色等。或者,如果您需要在活动中使用Toast,则可以使用SuperActivityToasts这将使您可以访问可点击的按钮,进度条,解雇听众等。
答案 3 :(得分:0)
可以用吐司
代码:在代码部分中添加
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>
希望这会给你想要的东西