codestory

Erstellen Sie einen benutzerdefinierten Android Toast

  1. Custom Toast
  2. Z.B  Toast anpassen

2. Z.B  Toast anpassen

Auf Android Studio erstellen Sie ein neues Projekt:
  • File > New > New Project > Empty Activity
    • Name: CustomToastExample
    • Package name: org.o7planning.customtoastexample
    • Language: Java
Kopieren Sie ein Icon (icon_info.png) in dem Verzeichnis drawable vom Projekt.
In diesem Beispiel werde ich "Resource Layout File" verwenden um die Interface für Toast zu entwerfen. Sie können die Interface für Toast ganz durch die Code Java erstellen (sehen Sie mehr in dem Beispiel).
OK, Klicken Sie auf dem Verzeichnis "layout" und wählen Sie:
  • New > Layout Resource File
  • File name: layout_custom_toast.xml
  • Root element: LinearLayout
  • Source set: main
  • Directory name: layout
Und jetzt können Sie die Interface für Toast entwerfen.
Legen Sie ID, Text, Padding, layout_weight für die Komponente in die Interface fest:
layout_custom_toast.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:padding="10sp">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:paddingRight="10sp"
        app:srcCompat="@drawable/icon_info" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Message" />
</LinearLayout>
Die Hauptinterface der Anwendung:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button_show"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:text="Show Custom Toast"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package org.o7planning.customtoastexample;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private Button buttonShow;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.buttonShow = (Button) this.findViewById(R.id.button_show);
        this.buttonShow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                buttonShowClicked();
            }
        });
    }

    // Create Toast with "Resource Layout File".
    private void buttonShowClicked()  {
        LayoutInflater inflater = this.getLayoutInflater();

        View layout = inflater.inflate(R.layout.layout_custom_toast, null);
        // TextView in layout_custom_toast.
        TextView textView = (TextView) layout.findViewById(R.id.textView);
        textView.setText("This is a message");
        textView.setTextColor(Color.BLUE);
        // Create Toast
        Toast toast = new Toast(this);
        toast.setDuration(Toast.LENGTH_LONG);
        toast.setView(layout);
        toast.show();
    }

    // Create Toast without "Resource Layout File".
    private void buttonShowClicked2()  {
        LinearLayout layout  = new LinearLayout(this);
        layout.setOrientation(LinearLayout.HORIZONTAL);
        layout.setPadding(10,10, 10, 10);
        //
        ImageView imageView = new ImageView(this);
        imageView.setImageResource(R.drawable.icon_info);
        imageView.setPadding(0, 0, 10, 0);
        //
        TextView textView = new TextView(this);
        textView.setTextColor(Color.BLUE);
        textView.setText("This is a message");

        LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT,0);
        layout.addView(imageView, params1);

        LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT,1);
        layout.addView(textView, params2);

        // Create Toast
        Toast toast = new Toast(this);
        toast.setDuration(Toast.LENGTH_LONG);
        toast.setView(layout);
        toast.show();
    }
}

Anleitungen Android

Show More