标题栏进度条
在后台线程中执行各种操作(网络连接、大数据存储)的时候,我们希望让客户能看到后台有操作在进行,那么既能有效的提示用户,又不占用当前操作空间,最好的方法就是在标题栏有个进度条。实现的方法很简单,代码如下:
在后台线程中执行各种操作(网络连接、大数据存储)的时候,我们希望让客户能看到后台有操作在进行,那么既能有效的提示用户,又不占用当前操作空间,最好的方法就是在标题栏有个进度条。实现的方法很简单,代码如下:
|
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
// 先给Activity注册界面进度条功能
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.main);
// 在需要显示进度条的时候调用这个方法
setProgressBarIndeterminateVisibility(
true
);
// 在不需要显示进度条的时候调用这个方法
//setProgressBarIndeterminateVisibility(false);
setContentView(R.layout.main);
}
|
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
public class EX05_08 extends Activity {
/*声明对象变量*/
private NotificationManager myNotiManager;
private Spinner mySpinner;
private ArrayAdapter<String> myAdapter;
private static final String[] status = { "在线","离开","忙碌中","马上回来","离线" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* 载入main.xml Layout */
setContentView(R.layout.main);
/* 初始化对象 */
myNotiManager= (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
mySpinner=(Spinner)findViewById(R.id.mySpinner);
myAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,status);
/* 应用myspinner_dropdown自定义下拉菜单模式 */
myAdapter.setDropDownViewResource(R.layout.myspinner_dropdown);
/* 将ArrayAdapter添加Spinner对象中 */
mySpinner.setAdapter(myAdapter);
/* 将mySpinner添加OnItemSelectedListener */
mySpinner.setOnItemSelectedListener( new Spinner.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0,View arg1, int arg2,long arg3) {
/* 依照选择的item来判断要发哪一个notification */
if(status[arg2].equals("在线")) {
setNotiType(R.drawable.msn,"在线");
} else if(status[arg2].equals("离开")) {
setNotiType(R.drawable.away,"离开");
} else if(status[arg2].equals("忙碌中")) {
setNotiType(R.drawable.busy,"忙碌中");
} else if(status[arg2].equals("马上回来")) {
setNotiType(R.drawable.min,"马上回来");
} else {
setNotiType(R.drawable.offine,"离线");
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
/* 发出Notification的method */
private void setNotiType(int iconId, String text) {
/* 创建新的Intent,作为单击Notification留言条时,
* 会运行的Activity
*/
Intent notifyIntent=new Intent(this,EX05_08_1.class);
notifyIntent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK);
/* 创建PendingIntent作为设置递延运行的Activity */
PendingIntent appIntent=PendingIntent.getActivity(EX05_08.this, 0,notifyIntent,0);
/* 创建Notication,并设置相关参数 */
Notification myNoti=new Notification();
/* 设置statusbar显示的icon */
myNoti.icon=iconId;
/* 设置statusbar显示的文字信息 */
myNoti.tickerText=text;
/* 设置notification发生时同时发出默认声音 */
myNoti.defaults=Notification.DEFAULT_SOUND;
/* 设置Notification留言条的参数 */
myNoti.setLatestEventInfo(EX05_08.this,"MSN登录状态", text,appIntent);
/* 送出Notification */
myNotiManager.notify(0,myNoti);
}
}
自定义土司
- LayoutInflater inflater = getLayoutInflater();
- View layout = inflater.inflate(R.layout.toast_layout,
- (ViewGroup) findViewById(R.id.toast_layout_root));
- ImageView image = (ImageView) layout.findViewById(R.id.image);
- image.setImageResource(R.drawable.android);
- TextView text = (TextView) layout.findViewById(R.id.text);
- text.setText("Hello! This is a custom toast!");
- Toast toast = new Toast(getApplicationContext());
- toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
- toast.setDuration(Toast.LENGTH_LONG);
- toast.setView(layout);
- toast.show();
控制Toast的显示为位置
Toast msg = Toast.makeText(Main.this, "Message", Toast.LENGTH_LONG);
msg.setGravity(Gravity.CENTER, msg.getXOffset() / 2, msg.getYOffset() / 2);
msg.show();