一、UI组件
一.布局管理器
1.线形布局
<LinearLayout> </LinearLayout>
注意:设置属性android:orientation属性,否则有的组件可能无法显示
常用属性
- id属性
android:id="@+id/wo" // id 属性
- 宽度
android:layout_width="wrap_content" //(wrap_content:根据内容的多少来分配空间)
android:layout_width="match_parent" // match_parent:匹配父空间,和父空间的宽度一样
- 高度
android:layout_height="120dp" //高度(也可使用以上宽度的属性)
- 外边距
android:layout_margin="20dp" //外边距
- 内边距
android:padding="20dp" //内边距(注意没有 layout)
- 背景颜色
android:background="#00E3E3" //背景颜色
- 全局布局排列方式
android:orientation="horizontal" //水平布局
android:orientation="vertical" //垂直布局
- 内部布局方式
android:gravity="center"
- 全重(可用于平分组件)
android:layout_weight="1" //子组件所占用父组件的比重
2.相对布局
<RelativeLayout> </RelativeLayout>
- 在谁的左边
android:layout_toLeftOf="@+id/wo"
- 在谁的右边
android:layout_toRightOf="@+id/ni">
- 和底部对齐
android:layout_alignBottom="@+id/wo"
- 和父空间的底部对齐
android:layout_alignParentBottom="true">
- 在谁的下面
android:layout_below="@+id/wo"
二.TextView & 常见效果制作
- 文字
android:text="@string/tv_text" //引入 string.xml 里面的文字
android:text="我最厉害" //直接写入文字
- 文字颜色
android:textColor="#000000"
- 文字大小
android:textSize="24dp"
- 限制文字行数,超出不显示
android:maxLines="1" //限制文字只能显示一行,如果放不下,就自动省略不写
- 让显示不下的文字以 ... 显示
android:ellipsize="end"
- 插入图片
android:drawableRight="@drawable/mi" // 图片名为 mi.png(必须是.png)
android:drawablePadding="200dp" //调整图片的内边距
- 中划线
mTv4.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG); //中划线 ( mTv4 id名)
- 下划线
mTv5.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 ( mTv5 id名)
//或者
mTv6.setText(Html.fromHtml("<u>热爱生活</u>"));
- 让文字实现滚动效果
android:maxLines="1" //限制文字行数
android:ellipsize="marquee" //让显示不下的文字以 ... 显示
android:marqueeRepeatLimit="marquee_forever" //设置重复滚动的次数 (marquee_forever无限滚动)
//一进入一个页面, EditText默认就会自动获取焦点。以下两行就把EditText默认的行为截断了
android:focusable="true"
android:focusableInTouchMode="true"
三、Button & 自定义
1.自定义背景形状
drawable ---->右击 --->new--->Drawable resource file
第二行输入 shape
<shape
android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<stroke //边框线
android:width="10dp" //边框线的宽度,相当于粗细
android:color="#ff9900"> //边框线的颜色
</stroke>
<corners //设置弧度大小
android:radius="2dp"> //弧度的弯曲程度
</corners>
</shape>
在背景中引入,便可显示
android:background="@drawable/File name"
效果图:
image.png
2.自定义按压效果
新建一个Drawable resource file,
用 <item></item>
来设置按压前以及按压后的效果
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"> //按压前
<shape>
<solid
android:color="#aa6600"> //背景颜色
</solid>
<corners
android:radius="5dp">
</corners>
</shape>
</item>
<item
android:state_pressed="false"> //按压后
<shape>
<solid
android:color="#ff9900"> //背景颜色
</solid>
<corners
android:radius="5dp">
</corners>
</shape>
</item>
</selector>
3.点击事件
-
方法一:
1.新建 java 文件
image.png
2.声明元素
image.png
3.设置点击事件
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_button);
mBtn3=(Button)findViewById(R.id.bt_3); //找到 id
mBtn3.setOnClickListener(new View.OnClickListener(){ //设置点击事件
public void onClick(View v){
//显示点击文字
Toast.makeText(ButtonActivity.this,"btn3我被点击了",Toast.LENGTH_SHORT).show();
}
});
}
- 方法二:
1.直接自己写方法
public void showToast(View view){
Toast.makeText(this,"btn4我被点击了",Toast.LENGTH_SHORT).show();
}
2.调用方法
android:onClick="showToast"
网友评论