今天学习到的了按钮开关(点击开关,WIFI的开关),以及滑动的按钮开关(USB调试),进度条,星星(好评),模拟的图片透明度的调节
一:按钮开关(ToggleButton)
实现步骤:
1 .
在XML的文件中,只需要创建好ToggleBuotton 的控件,给予其按钮onClick()
2.
定义方法
public void 方法名(View view){
//是否被选中打开 boolean b=((ToggleButton)view).isChecked()
}
二:滑动的按钮开关(Switch)
操作与ToggleButton相似,
只需改动一点代码即可
public void 方法名(View view){
//是否被选中打开 boolean b=((SwitchButton)view).isChecked(); }
三:进度条
注意:
1.耗时多的线程不能放在主线程中,否则会出现应用程序无响应的报错,可以写个子线程来解决(多线程)
如何实现多线程:两种方法
一:自己写类继承Thread 和实现Runnable接口
2.线程之间信息传递需要用线程机制handler来进行
3.主线程与子线程的分工不能弄乱,主线程主要是界面的更新,子线程主要是耗时的功能的操作
以下是进度条的代码操作:
public class MainActivity extends AppCompatActivity { private ProgressBar pb_progress_bar; private TextView tv_text_view; private ImageView iv_magesview; private ImageView iv_magesview1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pb_progress_bar = (ProgressBar) findViewById(R.id.pb_progress_Bar); tv_text_view = (TextView) findViewById(R.id.tv_text_view); }
public void download(View view) { //启动子线程 new MyThread().start(); } Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); //接收消息,更新UI int i= msg.what; tv_text_view.setText(i+""); } }; class MyThread extends Thread { @Override public void run() { super.run(); for (int i = 0; i <= 100; i++) { pb_progress_bar.setProgress(i); //发消息 handler.sendEmptyMessage(i); try { Random random=new Random();//随机 int n=random.nextInt(100); Thread.sleep(n); }catch (InterruptedException e) { e.printStackTrace(); } } } }
}
四:星星好评(RatingButton)
.操作:
1 .
在XML的文件中,只需要创建好RatingButton 的控件,给予其id
2.
//根据id找到控件RatingBa rat = (RatingBar) findViewById(R.id.rb_bar);//按钮事件 rat.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { if(fromUser){ Toast.makeText(ProgerssActivity.this,rating+ "星好评", Toast.LENGTH_SHORT).show(); } }});
五:模拟透明度(SeekBar )
SeekBar seek = (SeekBar) findViewById(R.id.sb_bar);int count=0;ImageView image = (ImageView) findViewById(R.id.iv_image_view);//设置默认图片 image.setImageResource(R.drawable.mei_2); //最大值 seek.setMax(255);
//进程 seek.setProgress(255);
//透明度 image.setImageAlpha(255);
//监听事件 seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { count=progress; } @Override public void onStartTrackingTouch(SeekBar seekBar) { image.setImageAlpha(count); } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); } }