1.基本控件介绍
Android的SDK中定义了一个View类,它是所有Android控件和容器
的父类。《View和ViewGroup》。
View和ViewGroup的概念
View:Android中所有控件的顶层基类
ViewGroup:是View的子类,代表一个View的容器,可以用于存放
其他View对象
布局类(就是ViewGroup类的子类)
不同的布局管理内部空间的方式不一样
线性布局(LinearLayout):是按照线性排列(横向、纵向)的
方式对内部控件的位置进行管理
常用属性:android:orientation=“vertical”[ horizontal]
2.View类的常用属性:
【
android:id 设置控件的标识符号
android:layout_width 设置子组件的布局宽度
android:layout_height 设置子组件的布局度
android:background 设置控件的背景色
android:onClick 设置控件的单击事件绑定监听器
android:visibility 设置控件是否可见
(invisible/visible/gone<不可见,不占位>
tv_name.setVisibility(View.VISIBLE);)
android:alpha 设置控件透明度(0-1之间的数值)
android:padding 设置子组件的内边距
android:layout_margin 设置子组件的外边距
android:onClick 为控件设置点击事件对应的回调方法
】
android:layout_width
android:layout_height
属性值:
1)具体的长度
2)wap_content, 包裹内容(根据内容的大小调整控件的大小)
3)fill_parent:填充父控件(从Android2.1开始被match_parent
替代)4)match_parent:填充父控件
PS:以上两个属性是任何一个控件都必须要设置的,并且长度单
位推荐使用:dp常用的基本控件
3.TextView
TextView:基本文本标签,用于展示一个简单文本
常用属性:
android:text:文本的内容
android:textSize:文字的大小
android:textColor:文本的颜色《#RGB
#ARGB
#RRGGBB
#AARRGGBB
android:textColor="@android:color/holo_green_light"
》
android:gravity:控制控件内容的位置
android:drawableXXX:在控件中放置图片
android:autoLink:设置超链接
需要了解的属性:
【
android:shadowDx -------阴影的横坐标偏移
android:shadowDy------- 阴影的纵坐标偏移
android:shadowRadius-------- 阴影的半径
android:shadowColor--------- 阴影的颜色
android:textAllCaps-------所有字母大写
android:password ------------将文字设置为密文
】
代码操作法:
【
//在代码中修改TextView的文本内容
//根据id在当前的页面中寻找控件
tv_name = (TextView)this.findViewById(R.id.tv_name);
//设置文本的内容,大多数情况下,一个控件在布局中设置的属
性都有对应的方法可以在代码中去设置
tv_name.setText(“修改了,文件的文本!”);
//
tv_name.setTextColor(Color.BLUE);
tv_name.setTextColor
(Color.parseColor("#FF0000"));
tv_name.setTextSize(30);
】
使用TextView实现跑马灯效果
需要
设置以下属性:
android:singleLine=“true”
android:ellipsize=“marquee” //跑马灯效果
android:focusable=“true”//让控件可获取焦点
android:focusableInTouchMode=“true” // 让控件在触摸模式下
获取焦点
可选的属性:android:marqueeRepeatLimit //文本滚动的次数
属性值:-1或marquee_forever,代表无限滚动
具体的滚动次数(比如设置为2)
使用跑马灯的前提:
1)文本内容必须要超出控件的宽度
2)必须单行显示
android:singleLine=“true”
android:maxEms=“8”
android:ellipsize=“end”
android:singleLine=“true”
android:ellipsize=“end”
android:ems=“15”
设置TextView的行间距、行高。
【
1、android:lineSpacingExtra?
设置行间距,如”8dp”
2、android:lineSpacingMultiplier?
设置行间距的倍数,
如”1.5″
】
设置每行的最大字数
【
maxLength和固定15个字的宽度或代码控制加\n
android:singleLine=“false”.
android:maxEms
setText(Html.fromHtml()
关于文本颜色的操作代码设置:
private void setText(TextView t){
String text =t.getText().toString().trim();
SpannableStringspan = new SpannableString(text);
span.setSpan(new ForegroundColorSpan(Color.WHITE), 0,
1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
t.setText(span);
}
tv_lingqu_tishi.setTextColor(Color.parseColor
("#ffffff"));
Button 按钮
继承自TextView,具有TextView的所有属性
【
注册监听事件的四种方式:
1、 设置 android:onClick 属性
《android:onClick=“onBtnClick”
// 当按钮被点击的时候调用的方法
publicvoid onBtnClick(View v) {
System.out.println("使用onClick属性");
Toast.makeText(MainActivity.this,“使用onClick属性”,
1).show();
}
》
2、 成员内部类
《//方式二:使用成员内部类
privateclass MyListener implements OnClickListener{
@Override
publicvoid onClick(View v) {
//TODO Auto-generated method stub
System.out.println(“方式二:使用成员内部类”);
Toast.makeText(MainActivity.this,"方式二:使用成员内部
类", 1).show();
}
}
button2.setOnClickListener(newMyListener());
》
3、 匿名内部类
//方式三:使用匿名内部类
button3= (Button) this.findViewById(R.id.button3);
button3.setOnClickListener(newView.OnClickListener() {
@Override
publicvoid onClick(View v){
System.out.println(“方式三:使用匿名内部类”);
Toast.makeText(MainActivity.this,"方式三:使用匿名内部
类", 1).show();
}
});
4、 当前Activity实现监听接口(OnClickListener)
《public class MainActivity extends Activity
implementsOnClickListener {
//方式四:实现监听接口
@Override
publicvoid onClick(View v) {
//TODO Auto-generated method stub
switch(v.getId()) {
caseR.id.button4:
System.out.println(“方式四:实现监听接口1”);
Toast.makeText(MainActivity.this,"方式四:实
现监听接口1", 1).show();
break;
caseR.id.button5:
System.out.println(“方式四:实现监听接口2”);
Toast.makeText(MainActivity.this,"方式四:实
现监听接口2", 1).show();
break;
default:
break;
}
}
}》
EditText 文本编辑框
【ems
–EditText类继承自TextView类,具有TextView的所有属性
–EditText与TextView最大的不同就是用户可以对EditText控
件进行编辑,同时还可以为EditText控件设置监听器,用来判断
用户的输入是否合法
android:hint 输入提示
android:textColorHint 提示的颜色
android:textColorHighlight 选中字体的背景颜色
android:inputType 输入类型的可选项
监听输入框中文本内容的变化:
addTextChangedListener(TextWatcher watcher)
】
《//监听EditText中文本变化
name.addTextChangedListener(newMyWather());
//监听EditText中文本变化
classMyWather implements TextWatcher{
@Override
publicvoid onTextChanged
(CharSequence s, int start, int ,before,int count) {
//TODO Auto-generated method stub
System.out.println(“文本发生改变…”+s);
}
}
》
if(TextUtils.isEmpty(namea) || TextUtils.isEmpty(pwd))
Android的四大组件
Activity 与用户交互的界面
Service 后台服务
BroadcastReceiver 广播接收器
ContentProvider 内容提供者(可以通过该组件实现不同进程间
的数据交互)
ImageView 图形视图
【
继承自View
andorid:src 设置图片来源
android:adjustViewBounds 用于设置ImageView 是否调整自己的
边界,来保持所显示图片的长宽比例
android:maxHeight 设置 ImageView 的最大高度
《需要先设置android:adjustViewBounds为true,否则不起作用
》
andorid:maxWidth 设置 ImageView 的最大宽度
android:scaleType 设置所显示的图片如何缩放或移动,以适应
ImageView的大小
setImageBitmap() 设置Bitmap作为图片源
setImageDrawable() 设置Drawable作为图片源
setImageResource() 设置Resource作为图片源
《
//方式一:Drawable类描述的是资源文件中的图像资源
//Drawabledrawable = getResources().getDrawable
(R.drawable.hjgh_n);
//iv.setImageDrawable(drawable);
//方式二:在Android中是用Bitmap类来描述图片
//通过BitmapFactory(位图工厂)生成Bitmap对象
/* Bitmap bm = BitmapFactory.decodeResource(getResources
(),R.drawable.hjgh_n);
iv.setImageBitmap(bm);*/
//方式三:
iv.setImageResource(R.drawable.hjgh_n);
》
获取资源文件实现切换效果:
《
private int[] imgs =
{R.drawable.lz1,R.drawable.lz2,R.drawable.lz3};
int index = 0;
public void xiaClick(View v){
if(index ==(imgs.length-1)){
index=0;
}else{
index++;
}
imView.setImageResource(imgs[index]);
}
》
怎么在代码中设ImageView的src属性
setImageDrawable(drawable);
setImageBitmap(bm);
setImageResource(resId);
怎么在代码中设ImageView的background属性
setBackgroundResource(R.drawable.down_finish);
// iv_startguid.setImageDrawable(getResources
().getDrawable(R.drawable.btn_start_guide));
iv_startguid.setBackgroundResource
(R.drawable.btn_start_guide);