一、Progressbar的用法:
ProgressBar主要是用来实现处理或加载进度的显示或者提示用户正在处理或加载数据。基本来说就两种情况,一种是转圈的小圆圈,一种是水平的进度条。style="?android:attr/progressBarStyle"
style="?android:attr/progressBarStyleHorizontal”
Progressbar的常用属性:
android:max="200" 滚动条最大值
android:progress="0" 滚动条当前值
android:visibility="visible" 滚动条是否可见
setProgress(int) 设置当前值
样例:
"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
"
android:layout_below="@id/pb_top"
android:layout_marginTop="20dp"
style="?android:attr/progressBarStyleHorizontal"
//自定义进度条颜色 android:indeterminateDrawable="@drawable/progressbar"
android:layout_width="match_parent"
android:layout_height="20dp"
android:max="100"/>
private void intiView(){
btn_add= (Button) findViewById(R.id.btn_add);
pb_bottom= (ProgressBar) findViewById(R.id.pb_botton);
btn_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(progress<100){
progress+=10;
pb_bottom.setProgress(progress);
}else {//进度条循环显示
progress=0;
pb_bottom.setProgress(progress);
}
//自定义进度条颜色的资源
***********************************************************************************************************************************************
二、RatingBar的常用方法
public RatingBar(Context context) 创建RatingBar对象
public int getNumStars() 取得评分数量
public float getRating() 取得当前值
public float getStepSize() 取得设置的步长
public boolean isIndicator() 判断是否可以操作
public void setIsIndicator(boolean isIndicator) 是否可以操作
public synchronized void setMax(int max) 设置最大值
public void setNumStars(int numStars) 设置评分星的个数
public void setOnRatingBarChangeListener
(RatingBar.OnRatingBarChangeListener listener) 设置操作监听
public void setRating(float rating) 设置当前值
public void setStepSize(float stepSize) 设置每次增长的步长
样例:
"wrap_content"
android:layout_height="wrap_content" />
"wrap_content"
android:layout_height="wrap_content"
android:isIndicator="true"/>
"wrap_content"
android:layout_height="wrap_content"
android:isIndicator="false"/>
"@+id/rb_rat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:isIndicator="false"
android:numStars="6"
android:stepSize="0.5"/>
private void intiView(){
rb_rat= (RatingBar) findViewById(R.id.rb_rat);
tv_result= (TextView) findViewById(R.id.tv_result);
rb_rat.setRating((float) 1.5);
rb_rat.setNumStars(6);
rb_rat.setStepSize((float) 1.5);
rb_rat.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
tv_result.setText("总星数:"+ratingBar.getNumStars()+""+" ,方法星数:"+ratingBar.getRating()+" ,步长:"+ratingBar.getStepSize()+",当前监听进度"+rating);
}
***********************************************************************************************************************************************
三、SeekBar的常用方法:
public SeekBar(Context context) 创建SeekBar类的对象
public void setOnSeekBarChangeListener(
SeekBar.OnSeekBarChangeListener l) 设置改变监听操作
public synchronized void setMax(int max) 设置增长的最大值
样例:
"@+id/sb_seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"/>
public void intView(){
sb_seekbar= (SeekBar) findViewById(R.id.sb_seekbar);
tv_seek= (TextView) findViewById(R.id.tv_seek);
sb_seekbar.setProgress(50);
tv_seek.setMovementMethod(ScrollingMovementMethod.getInstance());
sb_seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
tv_seek.append("当前进度为:"+sb_seekbar.getProgress()+"\n");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
tv_seek.append("开始拖动;"+",当前进度为:"+sb_seekbar.getProgress()+"\n");
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
tv_seek.append("结束拖动;"+",当前进度为:"+sb_seekbar.getProgress()+"\n");
}
***********************************************************************************************************************************************
四、ListView的用法
需要哪些东西:1.数据,不止一条,数据的集合,数据集。
2.每一条叫做item,都有自己的布局,需要一个单独的布局,用来定义item的布局。
3.ListView控件
4.我们需要一个类,这个类用于把数据集展示到item布局上面。Adapter:适配器。
ArrayAdapte: 1.在页面中定义了ListView,并在activity中实例化
2.构建数据源,(new List,里面放上字符串)
3.新建ArrayAdapter: ArrayAdapter adapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1, str_list);
4.将adapter设置给listview lv.setAdapter(adapter);
自定义的Adapter:1.数据源:可以使用map,也可以使用实体类,都是集合
2.ListView控件
3.item布局不能使用系统的了,应该自定义一个item布局文件,给adapter使用
4.自定义adapter:把数据源展示到若干个item布局上面。
item布局:是listview一条数据的布局,item,类似于模板。
java:循环。。
步骤:1.新建一个包,新建一个实体类CarCompany,int img,String name
2.新建一个list,里面放上carcompany数据
3.新建一个item布局,单独的布局,用来定义item长什么样子,类似于模板。
自定义Adapter步骤:1、新建一个adapter包,在包里新建一个类,继承自BaseAdapter,alt+enter自动提示,重写4个方法
2、定义3个属性:上下文对象
布局加载器
数据源
通过构造函数为上下文对象,为数据源赋值,同时在构造函数中实例化布局加载器
public MyAdapter(List list, Context context) {
this.list = list;
this.context = context;
inflater = LayoutInflater.from(context);
3、重写getCount();return list.Size();
重写getItem(int postion); return list.get(postion);
重写getItemId(int postion);return postion
4、重写getview方法
加载item布局
实例化item布局中的控件
获取对应位置的数据
将数据展示到控件上面
返回加载的布局view
@Override
public View getView(int position, View convertView, ViewGroup viewGroup) {
View view = inflater.inflate(R.layout.item_list, null);
ImageView iv = (ImageView) view.findViewById(R.id.iv_img);
TextView tv = (TextView) view.findViewById(R.id.tv_name);
CarCompany company = (CarCompany) getItem(position);
iv.setImageResource(company.getImg());
tv.setText(company.getName());
return view;
}
5、在activity中使用adapter
MyAdapter adapter = new MyAdapter(list, this);
lv.setAdapter(adapter);
ListView作用:在有限的空间内展示多条数据(item布局是类似的这种)。
条件:数据集合,数据源
Adapter:将数据源展示到多条item布局上,加载并初始化item布局,然后将数据展示到item上
自定义的adapter可以加载自定义的item布局。
Adapter:getCount();数据源的数量,决定getview执行多少次。
getItem(int position);返回对应位置的数据
getItemId(int postion);返回对应item的id,position
getView();加载item布局,实例化item控件,将对应位置的数据展示到item布局上。
3个属性:Context:上下文对象,初始化布局加载器。
布局加载器,LayoutInflater:布局加载器
数据源:集合(实体类,List)
构造函数给属性赋值。
使用:new Adapter,设置给listview。
***********************************************************************************************************************************************
五、GridView的常用方法
public GridView(Context context) 构造 创建GridView对象
public void setStretchMode(int stretchMode) 普通 android:stretchMode 缩放模式
public void setVerticalSpacing(int verticalSpacing) 普通 android:verticalSpacing 设置垂直间距
public void setHorizontalSpacing(int horizontalSpacing) 普通 android:horizontalSpacing 设置水平间距
public void setNumColumns(int numColumns) 普通 android:numColumns 设置每列显示的数据量,如果设置为auto_fit则表示自动设置
public void setSelection(int position) 普通 设置默认选中项
public void setGravity(int gravity) 普通 android:gravity 设置对齐模式,由Gravity类指定
public void setAdapter(ListAdapter adapter) 普通 设置显示图片集
样例:
"@+id/gv"
android:numColumns="3"
android:verticalSpacing="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
public class GridBarActivity extends AppCompatActivity {
private GridView gv;
private String[] names = new String[]{"长安", "沃尔沃", "大众", "宾利", "奔驰"};
private int[] ids = new int[]{R.drawable.changan, R.drawable.vol, R.drawable.das, R.drawable.bl, R.drawable.benz};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid_bar);
gv= (GridView) findViewById(R.id.gv);
intiGrid();
}
private void intiGrid(){
final List