满堂花醉三千客,一剑霜寒十四洲。这篇文章主要讲述第一行代码Android-------第二章控件部分相关的知识,希望能为你提供帮助。
一、控件
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="https://www.songbingjia.com/android/@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);
【第一行代码Android-------第二章控件部分】
推荐阅读
- ORM--Object/Relation Mapping 对象关系映射
- Spring ApplicationListener配合-D实现参数初始化
- android五子棋游戏资讯阅读大学课程表地图拖拽检测小说搜索阅读app等源码
- Appium环境的安装以及一路上的坑
- android thread / udp socket sample
- Android开源库美团等APP城市选择
- android studio 清空缓存插件
- mybatis通用mapper源码解析
- DeepLearning.ai-Week4-Face Recognition for the Happy House