一、控件
1、大小
match_parenr:与父布局大小一样
fill_parent:与match_parent一样
wrap_content:控件大小刚好包住里面内容
2、TextView 在界面上显示一段文字
android:text = "显示的文字"
android:gravity:"文字对齐方式" //可选值有top、bottom、right、center,可以用|来指定多个值
android:textSize:文字大小
android:textColor :文字颜色
3、Button 按钮
android:text:显示文字
android:textAllCaps:大小写转换禁用、默认全部转换为大写
注册监听器
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){}
})
4、EditText 输入和编辑内容
android:hint="提示输入的内容"
android:maxLines="最多输入行数"
5、ImageView 展示图片
android:src="@drawable/图片"
更改图片内容
image.setImageResource();
6、progressBar 进度条
android:visibility=“是否可见”、 visibility 可见 invisible隐藏 gone 完全不可见 且不占据空间
修改样式
style:"?android:attr/progressBarStyleHorizontal"//水平进度条
设置可见性
setVisibility(VIew.VISIABLE);//View.INVISIBLE,View.GONE;
7、AlterDialog
弹出对话框
8、ProgressDialog
二、四种布局
1、LinearLayout线性布局
android:orientation 方向
android:layout_gravity=布局中位置
android:layout_weight=控件大小比例
2、RelativeLayout 相对布局
3、FrameLayout 帧布局
4、百分比布局
三、自定义控件
1、创建布局
新建layout.xml文件
2、在mainlayout.xml文件中引入布局文件
<include layout="layout.xml">
3、编写事件
LayoutInflater.from(Context).inflater(R.layout.XXX,this);
4、或者在布局文件中引入自定义控件事件文件
<packagename.activityfile
android:layout_width=""
android:layout_height=""/>
四、ListView 用于展示大量数据
1、编写布局文件及展示的布局文件
<ListView
andriod:id=
andrioid:layout_width=""
andriod:layout_height="">
2、新建展示的类
class Fruit{}
3、重写适配器Adapter
public class FruitAdapter extends ArrayAdapter<Fruit>{
private int resourceId;
public FruitAdapter(Context context,int textViewResourceId,List<Fruit>objects){
super(context,textViewResource,objects);
resourceId = textViewResourceId;
}
public View getView(int position,View convertView,ViewGroup parent){
Fruit fruit = getItem(position);
View view = LayoutInflater.from(getcontext()).inflate(resourceId,parent,flase);
TextView textview =view.findViewById(R.id.textview);
return view;
}
4、修改mainActivity
FruitAdapter fruitadapter = new FruitAdapter(MainActivity.this,R.layout.fruit_item,fruitlist);//展示的上下文,layout布局,展示的数据list
ListView listview = findViewById(R.id.list_view);
listview.setAdapter(adapter);
5、优化
1.converView,将之前加载好的布局进行缓存,以便之后可以复用
if(convertView == null){
view = LayoutInflater.from(getContext()).inflater(resourceId,parent,false);
}else{
view = convertView;
}
2、创建viewHolder内部类,对控件实例进行缓存,从而只获取一次布局实例
}
五、RecyclerView 对ListView进行优化
1、引入
在build.gradle中dependence中添加
implement ‘com.android.support:recyclerview-v7:24.2.1‘
之后sync now进行同步
2、使用 在layout文件中
<android.support.v7.widget.RecyclerView
android:id="@+id/"
android:layout_wight=" "
android:layout_height="" />
3、创建适配器
public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder>{
static class ViewHolder extneds Recycler.ViewHolder{ }; // viewHolder 内部类
public FruitAdapter (){ }; //构造函数
public ViewHolder onCreateViewHolder(ViewGroup parent,int position){
View view = LayoutInflate.from(parent.getContext()).inflate(R.layour.fruit_layout,parent,false);
ViewHolder viewholder = new ViewHolder(view);
return viewholder;
}
public viod onBindViewHolder(ViewHolder holder ,int position){
Fruit fruit = furitlist.get(position);
holder.fruitImage.setImageREsource(fruit.getImageId());
holder.fruitname.setText(fruit.getname());
}
public int getItemCount(){
return fruitlist.size();
}
}
4、修改mainActivity
RecyclerView recyclerview = (RecyclerView)findViewById(R.layout.id.recyclerview);
LinerLayoutManager layoutmanage = new LinerLayoutManager(this);
recycleView.setLayoutManager(layoutManager);
FruitAdapter adapter = new FruitADapter(fruitlist);
recyclerView.setAdapter(adapter);
原文地址:https://www.cnblogs.com/karryzhang/p/9510271.html