1.ToggleButton
通过一个带有亮度指示同时默认文本为“ON”(TextOn)或“OFF”(TextOff)的按钮显示选中/未选中状态。
在java代码中:
ToggleButton tb_main_tb1 = (ToggleButton) findViewById(R.id.tb_main_tb1);
tb_main_tb1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//当点击时:
if(tb_main_tb1.isChecked()){
// 切换值 off
}else{
//默认on
}
}
});
2.switch:Switch是一个可以再两种状态切换的开关控件。用户可以拖动来选择,也可以像选择复选框一样点击切换Switch的状态。和第一个的togglebutton一样:有这两个:android:textOff="关"
android:textOn="开"
当然 你可以定义其样式 背景。
Switch mswitch = (Switch) findViewById(R.id.sh_second_01);
//添加监听:
mswitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
Toast.makeText(SecondActivity.this,"开启开关",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(SecondActivity.this,"关闭开关",Toast.LENGTH_SHORT).show();
//simageview.setImageResource(R.drawable.dsf);
}
setSwitchTypeface(Typeface tf, int style) 使用指定的字体类型库内的指定类型来设置状态标签上的文字;
setSwitchTypeface(Typeface tf) 使用指定字体类型库内的固有类型来设置状态标签上的文字;
setTextOff(CharSequence textOff) 设置“关闭”状态标签文字;
setTextOn(CharSequence textOn) 设置“开启”状体标签文字;
android:textStyle 和android:typeface 与setSwitchTypeface(Typeface tf)对应;
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100" 进度条的最大值;
android:progress="25" 当前进度
android:id="@+id/sb_main_01"
/>
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
Toast.makeText(ThirdActivity.this,"当前:"+progress,Toast.LENGTH_LONG).show();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
Toast.makeText(ThirdActivity.this,"按住",Toast.LENGTH_LONG).show();
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Toast.makeText(ThirdActivity.this,"放开来",Toast.LENGTH_LONG).show();
}
});
<RatingBar
android:id="@+id/rb_forth_rb1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stepSize="0.5" //表半星半星的评
/>
java代码:
RatingBar ratingBar = (RatingBar) findViewById(R.id.rb_forth_rb1);
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
Toast.makeText(ForthActivity.this,"评分:"+rating,Toast.LENGTH_SHORT).show();
}
});
5.progressbar:ProgressBar是Android的进度条。
android:progressBarStyle:默认进度条样式
android:progressBarStyleHorizontal:水平样式
下面给大家 模拟一个 点击下载后就会出现一个进度条
activity_progress界面:
<ProgressBarandroid:id="@+id/pb_five_pb1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="download"
android:text="下载" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25sp"
android:id="@+id/tv_five_tv1"
/>
ProgressActicity界面;
public class ProgressActivity extends AppCompatActivity {
private ProgressBar progressBar;
private TextView textView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_progress);
progressBar = (ProgressBar) findViewById(R.id.pb_five_pb1);
textView = (TextView) findViewById(R.id.tv_five_tv1);
}
//方法:
public void download(View view){
Toast.makeText(FiveActivity.this,"下载中",Toast.LENGTH_SHORT).show();
new MyThread().start();
}
//handler
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
int i=msg.what;
textView.setText(i+"");
}
};
//子线程:
class MyThread extends Thread{
@Override
public void run() {
super.run();
for (int i = 0; i <=100 ; i++) {
progressBar.setProgress(i);
handler.sendEmptyMessage(i);
try {
Random rd=new Random();
int n=rd.nextInt(200);
if(i==50) {
Thread.sleep(500);
}else {
Thread.sleep(n);
}
} catch (InterruptedException e) {
e.printStackTrace();
}}
}
}