目录
一、values文件:存放字符串(strings)、颜色(colors)、尺寸(dimens)、数组(arrays)、样式(styles类似于CSS文件)、类型等资源
二、drawable:存放图片文件,if条件设置的颜色、图片XML文件
三、layout:存放布局文件(bmp、png、gif、jpg)
1、控件
Button:按钮控件
TextView:文本控件,用来显示文本
EditText:文本输入(编辑)框
ImageView:显示图片控件
ProgressBar:加载数据进度条
CheckBox:复选框
RadioGroup
RadioButton:单选框,俩个条件让其保持单选效果:1、需要放在同一RadioGroup里面 2、XML文件里设置id属性
Spinner:下拉框
SeekBar:进度条,ProgressBar的优化版
SearchView:搜索框
ProgressDialog:进度条对话框
(重点)ListView:列表控件,不同于上面其它控件,格式为:
2、布局
3、XML引入自定义布局
四、anim:存放动画文件
五、minmap:存放系统资源文件
六、raw:存放任意类型文件,一般存放比较大的音频视频,图片或文档。
会在R类中生成资源id,封装在APK中
七、assets:存放任意类型文件,不会被编译。
与raw相比,不会在R类中生成资源id
使用示例:
colors**文件**
<resources>
<color **name=“颜色**id”>颜色十六进制数值</color>
</resources>
strings**文件**
dimens**文件:设置图片尺寸dp**和字体尺寸sp
arrays**文件**
styles**文件**
<resources>
1、在XML文件中使用上述资源(@标签类型/id值):
2、在Java代码里获取资源
color颜色资源
R.color.id值
dimen字体资源
float myDimen = getResources().getDimension(R.dimen.id值);
string字符串资源
Resources.getString()
或 Resources.getText()
array数组资源:
二、drawable:存放图片文件,if条件设置的颜色、图片XML文件
Selector标签:只能在drawable里的XML文件使用(即drawable类型的资源文件),一个
XML文件存放一个selector相当于XML文件的if语句, item的状态判断是
由上而下进行判断的,一旦匹配到该状态,那么之后的状态就不再进行匹配。
<item
android:color=”@color/id值” //颜色值,#RGB,$ARGB,#RRGGBB,#AARRGGBB
android:drawable=”@drawable/id值” //图片
android:state_pressed=[“true” | “false”]//是否触摸
android:state_focused=[“true” | “false”]//是否获得焦点
android:state_selected=[“true” | “false”]//是否被selected选中状态
android:state_checkable=[“true” | “false”]//是否可选
android:state_checked=[“true” | “false”]//是否被checked选中状态
android:state_enabled=[“true” | “false”]//是否可用
android:state_window_focused=[“true” | “false”] />//是否窗口聚焦
里的的属性即为判断条件,可多个属性共同组成判断条件,如下:
示例:test文件存放了如下
使用:只有XML文件里的属性是设置为颜色、图片的属性才能使用selector文件
在CheckBox判断是否选中设置颜色
android**:textColor=**”@drawable/test”
三、layout:存放布局文件(bmp、png、gif、jpg) 1、控件
Button:按钮控件1、每个控件都有id,长,宽,即在XML代码中都有android:id属性和android:layout_width属性和
android:layout_heigh属性
定义id:android:id=”@+id/id名”
引用id:android:od=”@id/id名”
android:layout_width和android:layout_heigh有俩种可选值:match_parent(与父布局大小一致)和
wrap_content(大小刚好包住内容)
2、控件代码都是<控件名 属性1、属性2、…. />,属性值都用””包含
3、所有控件都有android:visibility属性
android:visibility:设置控件显示状态。
可选值:visible(可见),invisible(隐藏仍占用屏幕),gone(消失且不占屏幕)
后台逻辑 *** 控属性方法:
setVisibility():可传入View.VISIBLE、View.INVISIBLE,View.GONE
4、 android:gravity:指定文字对齐方式
android:layout_gravity:指定控件在布局对齐方式
android:layout_weight:先按控件尺寸分配屏幕,再按layout_weight比例进行分配
如:布局有俩个按钮,一个按钮layout_weight属性为1,另一按钮未设置该属性,则
未设置按钮分配完基本尺寸后,剩余空间都为另一个按钮所占,此时比例为1/1.
若设置了为1,则俩按钮平分布局空间
android:weightSum:设置layout_weight的总比例值,一般在父布局(即上一层控件)中设置
5、较常用属性;
XML属性可自行查询文档,这里主要讲后台逻辑部分
当获取到布局文件中的元素(通过Button,findViewById(R.id.id名))后,按钮的触发事件添加方式有俩钟。
Switch:开关按钮第一种:单个按钮时使用,直接调用。
如:
button.setOnClickListener(new OnClickListener(){
public void onClick(View v){
//添加触发事件逻辑
}
});
第二种:多个按钮时使用
One:使当前类继承OnClickListener接口(implements OnClickListener)
Two:若有多个按钮,都设置当前类为监听类。
button.setOnClickListener(this);
Three:在当前类重写onClick(View v)。
public void onClick(View v){ //View指的是点击按钮,根据不同按钮id不同设置不同触发代码
switch(v.getId()) {
case R.id.button1:Toast.makeText(this, “按钮1”, Toast.LENGTH_SHORT).show();break;
case R.id.button2:Toast.makeText(this, “按钮2”, Toast.LENGTH_SHORT).show();break;default:break;
}
}
第三种:在类里定义一个方法(方法有俩个要求:参数为View类型,和必须为public权限),然后在XML文件
里android:onClick属性设置为方法名
属性:
textOn:控件打开时显示的文字
textOff:控件关闭时显示的文字
thumb:控件开关的图片
track:控件开关的轨迹图片
typeface:设置字体类型
switchMinWidth:开关最小宽度
switchPadding:设置开关 与文字的空白距离
switchTextAppearance:设置文本的风格
checked:设置初始选中状态
splitTrack:是否设置一个间隙,让滑块与底部图片分隔(API 21及以上)
showText:设置是否显示开关上的文字(API 21及以上)方法;
TextView:文本控件,用来显示文本
属性:
EditText:文本输入(编辑)框android:text:显示文本内容
android:gravity:指定文字对齐方式(top,bttom,left,right,center),可用”|”来指定多个值,如:”center_vertical |
center_horizontal”来表示文字在水平和垂直方向都居中
android:textSize:指定文字大小,单位sp
android:textColor:指定文字颜色,可用16进制数或英文
属性:
android:hint:设置未输入时显示内容,输入时小时
android:maxLines:设置输入时最大行数,避免内容过多导致控件变形
android:inputType:可设置为textPassword将文本框变为密码框
方法:
ImageView:显示图片控件getText().toString():获得String形式文本
如:EditText editText=(EditText)findViewById(R.id.id名);
editText.getText().toString();
属性:
android:src:设置显示图片,如:android:src=”@drawable/图片名”
scaleType:让图片铺满ImageView
方法:
ProgressBar:加载数据进度条setImageResource(R.drawable.图片名):设置显示图片
属性:
CheckBox:复选框(style=”?android:attr/progressBarStyleHorizontal”):指定成水平进度条
android:max:指定进度条最大值
后台:
progressBar(进度条类)和progress(进度类)配合使用,如:
progress=progressBar.getProgress();
progress+=10;
progressBar.setProgress(progress);
AlertDialog.Builder:在当前界面d出警告对话框
后台:
setTitle(String):设置警告对话框标题
setMessage(String):设置警告对话框信息(内容)
setCancelable(true/false):设置警告对话框是否可取消
//设置确定键
setPositiveButton(String,new DialogInterface.OnClickListen(){
public void onClick(DialogInterface,int which){
}
});
//设置取消键
setNegativeButton(String,new DialogInterface.OnClickListen(){
public void onClick(DialogInterface,int which){
}
});
show():显示警告对话框
属性
android:text:设置复选框后的文本
android:checked;设置是否选中
方法
RadioGroupisChecked():判断选项是否被选中
getText():获取复选框按钮的文本内容
方法
RadioButton:单选框,俩个条件让其保持单选效果:1、需要放在同一RadioGroup里面 2、XML文件里设置id属性
属性:
android:text:设置复选框后的文本
android:checked;设置是否选中
方法
Spinner:下拉框isChecked():判断选项是否被选中
getText():获取复选框按钮的文本内容
SeekBar:进度条,ProgressBar的优化版
SearchView:搜索框
属性
输入类型
android:inputType最大宽度
android:maxWidth搜索图标是否显示在搜索框内:默认为true
mSearchView.setIconifiedByDefault(true);搜索图标是否显示在搜索框内
mSearchView.setIconifiedByDefault(true);设置搜索框展开时是否显示提交按钮,可不显示
mSearchView.setSubmitButtonEnabled(true);让键盘的回车键设置成搜索
mSearchView.setImeOptions(EditorInfo.IME_ACTION_SEARCH);搜索框是否展开,false表示展开
mSearchView.setIconified(false);获取焦点
mSearchView.setFocusable(true);
mSearchView.requestFocusFromTouch();设置提示词
mSearchView.setQueryHint(“请输入关键字”);设置输入框文字颜色
EditText editText = (EditText) mSearchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
editText.setHintTextColor(ContextCompat.getColor(this, R.color.white));
editText.setTextColor(ContextCompat.getColor(this, R.color.white));方法
ProgressDialog:进度条对话框
后台:
(重点)ListView:列表控件,不同于上面其它控件,格式为:setTitle(String):设置进度条对话框标题
setMessage(String):设置进度条对话框信息(内容)
setCancelable(true/false):设置进度条对话框是否可取消
show():显示进度条对话框
dimiss():关闭对话框
2、布局** Part One后台**:用到ListView类和适配器类(这里选用数组适配器类ArrayAdapter<列表子项类型>)
ListView后台代码:
setAdapter():传入设置的适配器
setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent,int position, longid){
//点击子项触发事件代码….此处position为子项索引值,可用ArrayAdapter类型的适配器类的get(position)方法
//从子项数组取出子项类
}
});
ArrayAdapter<列表子项类型>后台代码:
ArrayAdapter<列表子项类型>(当前活动.this,列表子项布局id,列表子项数组):构造一个适配器,若此时id为
android.R.layout.simple_list_item_1,此时子项布局为内置布局文件,只有一个
TextView,子项数组应为String类型与之对应
** Part Two自定义子项步骤:**
1、自定义子项布局文件,在构建适配器时传入布局id
2、自定义子项类(包含对应的类型变量,如 TextView对应定义String变量,图片对应int变量),同时重写子项类构造
函数和对应变量的返回函数
3、自定义适配器类(包含子项布局ID变量resourceId,因为后面要用)继承于ArrayAdapter<自定义子项类>
重写构造方法:super(当前活动.this,列表子项布局id,列表子项数组)
resourceId=列表子项布局id;
重写public View getView(int position,View cachView,ViewGroup parent):当列表滚动至屏幕包含子项调用的方法
Fruit fruit=getItem(position); //获得滚动进屏幕的子项类
View view;
if(cachView==null){ //缓存视图为空
view=LayoutInflater.from(getContext()).inflate(resourceId,null); //获得子项布局View
} else{
view=cachView;
}
//接下来就是给布局文件里的具体控件加载资源
//如:TextView textView=findViewById(R.id.控件id名);
// textView.setText(fruit.getText());….
return view; //最后返回子项布局view
}
3、XML引入自定义布局LinearLayout:线性布局
RelativeLayout:相对布局(推荐使用,可随意放置控件布置)
TableLayout:表格布局
FrameLayout:少用
<#include layout=”@layout/布局文件名”>
四、anim:存放动画文件
五、minmap:存放系统资源文件
六、raw:存放任意类型文件,一般存放比较大的音频视频,图片或文档。
会在R类中生成资源id,封装在APK中
七、assets:存放任意类型文件,不会被编译。
与raw相比,不会在R类中生成资源id
1、可能是SDKTools工具版本与build.gradle文件里的版本号不一致
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)