Android初级,Toast的带图片显示

在我们学习到消息框的时候,入门的即使toast了,也叫土司,就是在手机连接WIFI断开的时候出现在手机底部居中的那一个小信息框:

这个消息只用到一条语句,在第一个按钮的点击响应函数里面:

这里就这几一个星座座右铭的小应用作为演示:

我的toast

好了,那么我们要怎么来做呢:

                        1)、首先自己写好几个按钮:

               我呢就写了一个text和四个button,设置好其响应函数:

 <TextView
        android:id="@+id/tV_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="学霸星座的座右铭"
        android:textSize="30sp"
        app:layout_constraintVertical_chainStyle="packed"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintBottom_toTopOf="@+id/btn_one"
        tools:ignore="MissingConstraints" />
    <Button
        android:id="@+id/btn_one"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="魔蝎座"
        android:onClick="oneToast"
        android:textSize="30sp"
        app:layout_constraintTop_toBottomOf="@id/tV_title"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintBottom_toTopOf="@+id/btn_two"
        tools:ignore="MissingConstraints" />
    <Button
        android:id="@+id/btn_two"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="射手座"
        android:onClick="twoToast"
        android:textSize="30sp"
        app:layout_constraintTop_toBottomOf="@id/btn_one"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintBottom_toTopOf="@+id/btn_three"
        tools:ignore="MissingConstraints" />
    <Button
        android:id="@+id/btn_three"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="水瓶座"
        android:onClick="threeToast"
        android:textSize="30sp"
        app:layout_constraintTop_toBottomOf="@id/btn_two"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintBottom_toTopOf="@+id/btn_four"
        tools:ignore="MissingConstraints" />
    <Button
        android:id="@+id/btn_four"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="双鱼座"
        android:onClick="fourToast"
        android:textSize="30sp"
        app:layout_constraintTop_toBottomOf="@id/btn_three"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        tools:ignore="MissingConstraints" />

                        2)、在Main3Activity函数里面编写toast的代码:

public void oneToast(View view) {
        Toast.makeText(this, "艰苦岁月总难长久,坚毅的人总会出头。", Toast.LENGTH_SHORT).show();
    }
    public void twoToast(View view) {
        Toast toast = Toast.makeText(getApplicationContext(),"世上最重要的事,不在于我们在何处,而在于我们朝着什么方向走。",Toast.LENGTH_SHORT);
        toast.setGravity(Gravity.TOP,0,200);
        toast.show();
    }
    public void threeToast(View view) {
        Toast toast = Toast.makeText(getApplicationContext(),"肉体是精神居住的花园,意志则是这个花园的园丁意志既能使肉体“贫瘠”下去,又能用勤劳使它“肥沃”起来。",Toast.LENGTH_SHORT);
        ImageView myImage = new ImageView(getApplicationContext());
        myImage.setImageResource(R.drawable.icon);
        LinearLayout toastView = (LinearLayout)toast.getView();
        toastView.setOrientation(LinearLayout.HORIZONTAL);
        toastView.addView(myImage,0);
        toast.show();
    }
    public void fourToast(View view) {
        TextView myText = new TextView(getApplicationContext());
        myText.setText("一个真实的人会像星星一样散发光芒");
        Toast toast = Toast.makeText(getApplicationContext(),"",Toast.LENGTH_SHORT);
        ImageView myImage = new ImageView(getApplicationContext());
        myImage.setImageResource(R.drawable.icon);
        LinearLayout toastView = (LinearLayout)toast.getView();
        toastView.setOrientation(LinearLayout.HORIZONTAL);
        toastView.addView(myImage,0);
        toastView.addView(myText,1);
        toast.show();
    }

写一个简单的带图片的土司代码的思路:

                ·创建一个toast对象

                ·设置好toast的显示位置

                ·创建一个imageview并写好源文件

                ·获取toast对象的视图,并转换为Linearlayout布局,因为线性布局简单

                ·设置线性布局对象的排列方向为垂直

                ·将图片对象add进toast视图对象

                ·最好,toast.show();


Toast toast = Toast.makeText(getApplicationContext(),"你要显示的字符串",Toast.LENGTH_SHORT);
ImageView myImage = new ImageView(getApplicationContext());
myImage.setImageResource(R.drawable.icon);
LinearLayout toastView = (LinearLayout)toast.getView();
toastView.setOrientation(LinearLayout.HORIZONTAL);
toastView.addView(myImage,0);
toast.show();

                        3)、在写的过程中可能遇到一些奇奇怪怪的问题,大家可以通过查看日志信息来定位出问题的地方,

也就是这个框logcat ,下拉框可以选择日志类型,有错误、警告、和一般等;

倘若你通过排错没有发现逻辑问题和语法问题,可能会通过调试来找问题,这里会发现getView();的返回值是一个NULL,不用怀疑,这里默认的值,错误不在这里,我遇到过一个问题,就是点击按钮是就会闪退,编译器会说是getView()为NULL,说明是你的手机版本太高,这时候你就要换一个低版本的手机了,这是一个坑要注意!!! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程学渣ズ

谢谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值