編輯:關於Android編程
Toast英文名為土司,在Android裡面這個類是用來彈出提示信息的,我想sdk作者是認為提示信息片長得就像一塊土司吧。這個理論就不多說什麼了,開始我們的實踐。
第一步、設計頁面
主頁面toastview.xml
android:layout_height="fill_parent">
自定義toast頁面customtoast.xml
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:background="#ffffffff" android:orientation="vertical"
android:id="@+id/llToast" >
android:layout_width="fill_parent" android:gravity="center"
android:background="#bb000000" android:id="@+id/tvTitleToast"/>
android:layout_marginLeft="1dip" android:layout_marginRight="1dip"
android:layout_marginBottom="1dip" android:layout_width="wrap_content"
android:padding="15dip" android:background="#44000000">
android:id="@+id/imgToast" />
android:layout_width="wrap_content" android:gravity="center"
android:textColor="#ff000000" android:id="@+id/tvTextToast"/>
第二步、設計Acttivity ToastActivity.java
/**
*
*/
package com.figo.helloworld;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
/**
* @author Administrator
*
*/
public class ToastActivity extends Activity implementsOnClickListener {
Handler handler = new Handler();//幫助主線程和子線程進行通信
@Override
public void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
//找到頁面
setContentView(R.layout.toastview);
//添加按鈕事件
findViewById(R.id.btnSimpleToast).setOnClickListener(this);
findViewById(R.id.btnSimpleToastWithCustomPosition).setOnClickListener(
this);
findViewById(R.id.btnSimpleToastWithImage).setOnClickListener(this);
findViewById(R.id.btnCustomToast).setOnClickListener(this);
findViewById(R.id.btnRunToastFromOtherThread).setOnClickListener(this);
}
public void showToast() {
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),"我來自其他線程!",
Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onClick(View v) {
Toast toast = null;
switch (v.getId()) {
case R.id.btnSimpleToast://簡單toast
Toast.makeText(getApplicationContext(),"默認Toast樣式",
Toast.LENGTH_SHORT).show();
break;
caseR.id.btnSimpleToastWithCustomPosition://自定義位置的toast
toast =Toast.makeText(getApplicationContext(), "自定義位置Toast",
Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER,0, 0);
toast.show();
break;
caseR.id.btnSimpleToastWithImage://帶圖片的toast
toast =Toast.makeText(getApplicationContext(), "帶圖片的Toast",
Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER,0, 0);
LinearLayout toastView =(LinearLayout) toast.getView();
ImageView imageCodeProject= new ImageView(getApplicationContext());
imageCodeProject.setImageResource(R.drawable.icon);
toastView.addView(imageCodeProject,0);
toast.show();
break;
case R.id.btnCustomToast://自定義toast
LayoutInflaterinflater = getLayoutInflater();
View layout =inflater.inflate(R.layout.customtoast,
(ViewGroup)findViewById(R.id.llToast));
ImageView image =(ImageView) layout
.findViewById(R.id.imgToast);
image.setImageResource(R.drawable.icon);
TextView title = (TextView)layout.findViewById(R.id.tvTitleToast);
title.setText("Attention");
TextView text = (TextView)layout.findViewById(R.id.tvTextToast);
text.setText("完全自定義Toast");
toast = newToast(getApplicationContext());
toast.setGravity(Gravity.RIGHT| Gravity.TOP, 100, 60);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
break;
caseR.id.btnRunToastFromOtherThread://其他線程執行完後在主線程顯示toast
new Thread(new Runnable() {
public void run() {
showToast();
}
}).start();
break;
}
}
}
第三步、AndroidManifest.xml注冊Activity
第四步、運行效果
之前我在 《Windows下Qt 5.2 for Android開發入門》一文中介紹了 Windows 下 Qt on Android 開發環境的搭建,略過了 Andro
怎樣才能寫出優秀的Android App,是每一個程序員追求的目標。那麼怎麼才能寫出一個優秀的App呢?相信很多初學者也會有這種迷茫。一句話來回答這個問題:細節很重要。今
為什麼我說它是最實用的 ViewPager 指示器控件呢? 它有以下幾個特點: 1、通過自定義 View 來實現,代碼簡單易懂; 2、使用起來非常方便; 3、通用性高,大
DrawerLayout組件同樣是V4包中的組件,也是直接繼承於ViewGroup類,所以這個類也是一個容器類。使用DrawerLayout可以輕松的實現抽屜效果,使用D