android基础-TextView及其子类、ImageView及其子类
来源:互联网 发布:abb机器人编程培训 编辑:程序博客网 时间:2024/05/25 16:39
1.TextView及其子类
实例:不同颜色、字体、带链接的文本
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 设置字号为20pt,文本框结尾处绘制图片 --> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="我爱Java" android:textSize="20pt" android:drawableEnd="@mipmap/ic_launcher"/> <!-- 设置中间省略,所有字母大写 --> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:text="我爱Java我爱Java我爱Java我爱Java我爱Java我aaaJava" android:ellipsize="middle" android:textAllCaps="true"/> <!-- 对邮件、电话增加链接 --> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:text="邮件是kongyeeku@163.com,电话是02088888888" android:autoLink="email|phone"/> <!-- 设置文字颜色、大小,并使用阴影 --> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="测试文字" android:shadowColor="#00f" android:shadowDx="10.0" android:shadowDy="8.0" android:shadowRadius="3.0" android:textColor="#f00" android:textSize="18pt"/> <!-- 测试密码框 --> <TextView android:id="@+id/passwd" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/hello_world" android:password="true"/> <CheckedTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="可勾选的文本" android:checkMark="@mipmap/ic_launcher_round" /></LinearLayout>
实例2 圆角边框、渐变背景的TextView
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 通过android:background指定背景 --> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="带边框的文本" android:textSize="24pt" android:background="@drawable/bg_border"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="圆角边框、渐变背景的文本" android:textSize="24pt" android:background="@drawable/bg_border2"/></LinearLayout>
<?xml version="1.0" encoding="UTF-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 设置背景色为透明色 --> <solid android:color="#0000"/> <!-- 设置红色边框 --> <stroke android:width="4px" android:color="#f00" /></shape>
<?xml version="1.0" encoding="UTF-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- 指定圆角矩形的4个圆角的半径 --> <corners android:topLeftRadius="20px" android:topRightRadius="5px" android:bottomRightRadius="20px" android:bottomLeftRadius="5px"/> <!-- 指定边框线条的宽度和颜色 --> <stroke android:width="4px" android:color="#f0f" /> <!-- 指定使用渐变背景色,使用sweep类型的渐变 颜色从红色→绿色→蓝色 --> <gradient android:startColor="#f00" android:centerColor="#0f0" android:endColor="#00f" android:type="sweep"/></shape>
1.1 EditText的功能和用法
<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:stretchColumns="1"> <TableRow> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="用户名:" android:textSize="16sp"/> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请填写登录账号" android:selectAllOnFocus="true"/> </TableRow> <TableRow> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="密码:" android:textSize="16sp"/> <!-- android:inputType="numberPassword"表明只能接受数字密码 --> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="numberPassword"/> </TableRow> <TableRow> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="年龄:" android:textSize="16sp"/> <!-- inputType="number"表明是数值输入框 --> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number"/> </TableRow> <TableRow> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="生日:" android:textSize="16sp"/> <!-- inputType="date"表明是日期输入框 --> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="date"/> </TableRow> <TableRow> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="电话号码:" android:textSize="16sp"/> <!-- inputType="phone"表明是输入电话号码的输入框 --> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请填写您的电话号码" android:selectAllOnFocus="true" android:inputType="phone"/> </TableRow> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="注册"/></TableLayout>
1.2 按钮(Button)组件的功能和用法
没什么好说的,说说子类
1.2.1单选框(RadioButton)和复选框(CheckBox)的功能和用法
实例:利用单选框、复选框获取用户信息
<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TableRow> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="性别:"/> <!-- 定义一组单选按钮 --> <RadioGroup android:id="@+id/rg" android:orientation="horizontal" android:layout_gravity="center_horizontal"> <!-- 定义两个单选按钮 --> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/male" android:text="男" android:checked="true"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/female" android:text="女"/> </RadioGroup> </TableRow> <TableRow> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="喜欢的颜色:"/> <!-- 定义一个垂直的线性布局 --> <LinearLayout android:layout_gravity="center_horizontal" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <!-- 定义三个复选框 --> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="红色" android:checked="true"/> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="蓝色"/> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="绿色"/> </LinearLayout> </TableRow> <TextView android:id="@+id/show" android:layout_width="wrap_content" android:layout_height="wrap_content"/></TableLayout>
public class MainActivity extends AppCompatActivity { RadioGroup rg; TextView show; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取界面上rg、show两个组件 rg = (RadioGroup) findViewById(R.id.rg); show = (TextView) findViewById(R.id.show); // 为RadioGroup组件的OnCheckedChange事件绑定事件监听器 rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // 根据用户勾选的单选按钮来动态改变tip字符串的值 String tip = checkedId == R.id.male ? "您的性别是男人": "您的性别是女人"; // 修改show组件中的文本 show.setText(tip); } }); }}
1.2.2状态开关按钮(ToggleButton)和开关(Switch)的功能和用法
实例:动态控制布局
public class MainActivity extends AppCompatActivity { ToggleButton toggle; Switch switcher; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toggle = (ToggleButton)findViewById(R.id.toggle); switcher = (Switch)findViewById(R.id.switcher); final LinearLayout test = (LinearLayout)findViewById(R.id.test); CompoundButton.OnCheckedChangeListener listener = new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton button , boolean isChecked) { if(isChecked) { // 设置LinearLayout垂直布局 test.setOrientation(1); toggle.setChecked(true); switcher.setChecked(true); } else { // 设置LinearLayout水平布局 test.setOrientation(0); toggle.setChecked(false); switcher.setChecked(false); } } }; toggle.setOnCheckedChangeListener(listener); switcher.setOnCheckedChangeListener(listener); }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 定义一个ToggleButton按钮 --> <ToggleButton android:id="@+id/toggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOff="横向排列" android:textOn="纵向排列" android:checked="true"/> <Switch android:id="@+id/switcher" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOff="横向排列" android:textOn="纵向排列" android:thumb="@drawable/check" android:checked="true"/> <!-- 定义一个可以动态改变方向的线性布局 --> <LinearLayout android:id="@+id/test" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="测试按钮一" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="测试按钮二" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="测试按钮三" /> </LinearLayout></LinearLayout>
1.2.3 时钟(AnalogClock和TextClock)的功能和用法
1.2.4 计时器(Chronometer)
实例:倒计时
public class MainActivity extends AppCompatActivity { Chronometer ch; Button start; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取计时器组件 ch = (Chronometer) findViewById(R.id.test); // 获取“开始”按钮 start = (Button) findViewById(R.id.start); start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View source) { // 设置开始计时时间 ch.setBase(SystemClock.elapsedRealtime()); // 启动计时器 ch.start(); start.setEnabled(false); } }); // 为Chronometer绑定事件监听器 ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { @Override public void onChronometerTick(Chronometer ch) { // 如果从开始计时到现在超过了20s if (SystemClock.elapsedRealtime() - ch.getBase() > 20 * 1000) { ch.stop(); start.setEnabled(true); } } }); }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal"> <Chronometer android:id="@+id/test" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="35sp" android:textColor="#ffff0000"/> <Button android:id="@+id/start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="启动"/></LinearLayout>
我是感觉这种倒计时的方式傻子才会用的,也就是记在这里有个印象。
2.0 ImageView及其子类
实例:图片浏览器
public class MainActivity extends AppCompatActivity { // 定义一个访问图片的数组 int[] images = new int[]{ R.drawable.lijiang, R.drawable.qiao, R.drawable.shuangta, R.drawable.shui, R.drawable.xiangbi, }; // 定义默认显示的图片 int currentImg = 2; // 定义图片的初始透明度 private int alpha = 255; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Button plus = (Button) findViewById(R.id.plus); final Button minus = (Button) findViewById(R.id.minus); final ImageView image1 = (ImageView) findViewById(R.id.image1); final ImageView image2 = (ImageView) findViewById(R.id.image2); final Button next = (Button) findViewById(R.id.next); // 定义查看下一张图片的监听器 next.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 控制ImageView显示下一张图片 image1.setImageResource( images[++currentImg % images.length]); } }); // 定义改变图片透明度的方法 View.OnClickListener listener = new View.OnClickListener() { @Override public void onClick(View v) { if (v == plus) { alpha += 20; } if (v == minus) { alpha -= 20; } if (alpha >= 255) { alpha = 255; } if (alpha <= 0) { alpha = 0; } // 改变图片的透明度 image1.setImageAlpha(alpha); } }; // 为两个按钮添加监听器 plus.setOnClickListener(listener); minus.setOnClickListener(listener); image1.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent event) { BitmapDrawable bitmapDrawable = (BitmapDrawable) image1 .getDrawable(); // 获取第一个图片显示框中的位图 Bitmap bitmap = bitmapDrawable.getBitmap(); System.out.println(bitmap.getWidth()); System.out.println(image1.getWidth()); // bitmap图片实际大小与第一个ImageView的缩放比例 double scale = 1.0 * bitmap.getHeight() / image1.getHeight(); // 获取需要显示的图片的开始点 int x = (int) (event.getX() * scale); int y = (int) (event.getY() * scale); if (x + 120 > bitmap.getWidth()) { x = bitmap.getWidth() - 120; } if (y + 120 > bitmap.getHeight()) { y = bitmap.getHeight() - 120; } // 显示图片的指定区域 image2.setImageBitmap(Bitmap.createBitmap(bitmap , x, y, 120, 120)); image2.setImageAlpha(alpha); return false; } }); }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center"> <Button android:id="@+id/plus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="增大透明度"/> <Button android:id="@+id/minus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="降低透明度"/> <Button android:id="@+id/next" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="下一张"/> </LinearLayout> <!-- 定义显示图片整体的ImageView --> <ImageView android:id="@+id/image1" android:layout_width="wrap_content" android:layout_height="280dp" android:src="@drawable/shuangta" android:scaleType="fitCenter"/> <!-- 定义显示图片局部细节的ImageView --></LinearLayout>
实例:使用QuickContactBadage关联联系人
public class MainActivity extends AppCompatActivity { QuickContactBadge badge; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取QuickContactBadge组件 badge = (QuickContactBadge) findViewById(R.id.badge); // 将QuickContactBadge组件与特定电话号码对应的联系人建立关联 badge.assignContactFromPhone("020-88888888", false); }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <QuickContactBadge android:id="@+id/badge" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@mipmap/ic_launcher"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16dp" android:text="我的偶像"/></LinearLayout>
阅读全文
0 0
- android基础-TextView及其子类、ImageView及其子类
- Android基础UI篇------TextView及其子类
- ImageView及其子类
- ImageView及其子类
- ui.ImageView及其子类
- ImageView及其子类
- TextView及其子类
- TextView及其子类
- ui.TextView及其子类
- TextView及其子类
- TextView及其子类
- Android学习笔记(21):ImageView及其子类
- android基础-ProgressBar及其子类和ViewAnimator及其子类
- Android控件之TextView及其子类
- 安卓UI控件-TextView、ImageView及其子类
- UI组件:ImageView及其子类
- UI组件:TextView及其子类
- 1. 2 Textview 及其子类
- UVA
- SQL注入之GET型常规注入
- 通过父元素无视动态dom节点给元素挂事件
- 单源最短路(Dijkstra)邻接表实现
- js中==和===的区别
- android基础-TextView及其子类、ImageView及其子类
- linux环境下为php7装phpredis扩展
- DFS与BFS小结
- Linux下配置两个或多个Tomcat启动
- HDU-Inversion
- 第二行代码第一章(Android原理)
- PhotoShop CS6 安装及破解
- HDU6113度度熊的01世界(深搜)
- mysql语句总结3