Android 控件:ImageView、ProgressBar、AlertDialog、ProgressDialog
来源:互联网 发布:男内裤 知乎 编辑:程序博客网 时间:2024/06/01 07:14
1、ImageView就是一个图片显示控件这个我就不记了,里面的难点恐怕就是获取src吧,这点我在【Android代码库】笔记目录已经记录了。
2、ProgressBar 这个是一个进度条控件,它有多种style,下面是它的style名称。
Android的ProgressBar样式:
style="?android:attr/progressBarStyleHorizontal" 长形进度条
style="?android:attr/progressBarStyleLarge" 超大号圆形ProgressBar
style="?android:attr/progressBarStyleSmall" 小号圆形ProgressBar
style="?android:attr/progressBarStyleSmallTitle" 标题型圆形ProgressBar
3、AlertDialog 这个是一个提示框控件,可以在这个控件上定制一些按钮,并且可以在这些按钮上加事件,这个和javascript上的询问框差不多,后面的代码用这个做了一个“检查是否有最新版”的功能,可以让用户选择是否下载。4、ProgressDialog 这个控件从名字上就可以看得出和上面的进度条控件有关系,其实就是AlertDialog控件多了一个进度条控件功能而已,下面的代码用这个控件进行模拟“下载软件”的功能,具体可以参考.下面的代码将演示 1、ImageView控件的图片点击切换2、ProgressBar控件的显示隐藏并且加载进度3、AlertDialog控件的询问框4、ProgressDialog 带有进度条的提示框
package com.example.uiwidget;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
public class MainActivity extends ActionBarActivity {
private ImageView logo;
private ProgressBar progressBar;
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 点击图片,切换图片效果
logo = (ImageView) findViewById(R.id.logo);
logo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (logo.getDrawable()
.getConstantState()
.equals(getResources().getDrawable(R.drawable.apple)
.getConstantState())) {
logo.setImageResource(R.drawable.ic_launcher);
} else {
logo.setImageResource(R.drawable.apple);
}
}
});
// ProgressBar 进度条
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
Button ShowHideProgressBar = (Button) findViewById(R.id.ShowHideProgressBar);
ShowHideProgressBar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (progressBar.getVisibility() == View.GONE) {
progressBar.setVisibility(View.VISIBLE);
} else {
// 进度条递增加载
int progress = progressBar.getProgress();
progress = progress + 10;
progressBar.setProgress(progress);
progressBar.setVisibility(View.GONE);
}
}
});
//检查更新
onCheckUpdate();
}
// 检查更新
private void onCheckUpdate() {
// AlertDialog控件 询问框
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("发现新版本");
dialog.setMessage("更新内容:" + "\n 1、修复附近的人的bug" + "\n 2、增加了个人信息修改功能");
dialog.setCancelable(false);
dialog.setPositiveButton("确认更新", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
onDownLoad();
}
});
dialog.setNegativeButton("稍后更新", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
// Toast.makeText(getApplicationContext(), "", 1).show();
}
});
dialog.show();
}
// 开始下载更新
private void onDownLoad() {
// Progress控件 带有进度条的dialog
progressDialog = new ProgressDialog(MainActivity.this);
// progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);//
// 设置进度条的形式为圆形转动的进度条
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 长形进度条
progressDialog.setTitle("开始下载");
progressDialog.setMessage("loading...");
progressDialog.setIcon(R.drawable.ic_launcher);
progressDialog.setCanceledOnTouchOutside(false);// 设置在点击Dialog外是否取消Dialog进度条
// 如果此处设置为false则不能用back键进行取消的,必须要在代码中设置,
// 当加载完后,则调用 progressDialog.dismiss(); 进行关闭,否则ProgressDialog会一直存在.
progressDialog.setCancelable(true);
progressDialog.show();
// 初始化10进度
/*
* int progress = progressDialog.getProgress();
* progress = progress +10;
* progressDialog.setProgress(progress);
*/
// 采用线程方式来更新进度条
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
int i = 0;
while (i < 100) {
try {
Thread.sleep(100);
// 更新进度条的进度,可以在子线程中更新进度条进度 ,每次加1
progressDialog.incrementProgressBy(1);
// dialog.incrementSecondaryProgressBy(10)//二级进度条更新方式
i++;
} catch (Exception e) {
// TODO: handle exception
}
}
// 在进度条走完时删除Dialog
progressDialog.dismiss();
}
}).start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
0 0
- Android 控件:ImageView、ProgressBar、AlertDialog、ProgressDialog
- 第四部分:UI开发常用控件(TextView、Button、EditText、ImageView、ProgressBar、AlertDialog、ProgressDialog)
- Android UI 之 ProgressBar、ProgressDialog、AlertDialog
- [android]控件ProgressBar/ProgressDialog/SeekBar简介
- Android-基本控件(ProgressBar 和 ProgressDialog)
- Android 对话框 (AlertDialog & ProgressDialog)
- Android常用控件——Dialog之AlertDialog和ProgressDialog
- android 对话框之AlertDialog&ProgressDialog
- 【控件篇】ProgressBar+ProgressDialog使用案例
- 【边做项目边学Android】知识点:Android控件系列之ProgressDialog与ProgressBar
- android学习总结(16.08.29)进度条控件ProgressBar和ProgressDialog
- ProgressBar&ProgressDialog
- AlertDialog,ProgressDialog
- AlertDialog ProgressDialog
- android中ProgressDialog与ProgressBar的使用
- android中ProgressDialog与ProgressBar的使用
- Android ProgressBar & ProgressDialog 有什么区别呢?
- android关于ProgressBar和ProgressDialog的使用
- Find Peak Element --leetcode
- Codeforces 507C - Guess Your Way Out! (思维)
- Install Linux Kernel - 通用标准
- Minimum Depth of Binary Tree leetcode
- Intent ( 意图 )
- Android 控件:ImageView、ProgressBar、AlertDialog、ProgressDialog
- [LeetCode] Word Break, Solution
- 使用node.js和socket.io实现多人聊天室
- WordPress4.1英文版转中文版
- Binary Tree Maximum Path Sum
- LeetCode Multiply Strings 高精度乘法C++实现
- Mac下安装Wordpress4.1英文版
- Longest Common Prefix
- 刨根问底U3D---Mono的配置