View
外观
View[编辑 | 编辑源代码]
View 是 Android 用户界面(UI)的基础构建块,用于在屏幕上绘制可视元素并处理用户交互。所有可见的 UI 组件,如按钮(Button)、文本框(EditText)和布局(LinearLayout),都是 View 或其子类的实例。
概述[编辑 | 编辑源代码]
View 类位于 `android.view` 包中,是所有 UI 控件的基类。它负责:
- 绘制界面元素
- 处理触摸事件
- 管理布局和测量
- 维护视图状态
核心功能[编辑 | 编辑源代码]
绘制[编辑 | 编辑源代码]
View 通过 `onDraw()` 方法进行绘制,开发者可以重写此方法实现自定义绘制逻辑。
事件处理[编辑 | 编辑源代码]
View 提供了以下事件处理方法:
- `onTouchEvent()` - 处理触摸事件
- `onKeyDown()` - 处理按键按下事件
- `onFocusChanged()` - 处理焦点变化事件
布局[编辑 | 编辑源代码]
View 通过以下方法参与布局过程:
- `onMeasure()` - 确定视图大小
- `onLayout()` - 确定子视图位置
代码示例[编辑 | 编辑源代码]
基础View使用[编辑 | 编辑源代码]
// 在Activity中设置ContentView
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置布局文件
setContentView(R.layout.activity_main);
// 获取View实例
View myView = findViewById(R.id.my_view);
// 设置点击监听器
myView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 处理点击事件
}
});
}
自定义View示例[编辑 | 编辑源代码]
public class CustomView extends View {
private Paint paint;
public CustomView(Context context) {
super(context);
init();
}
private void init() {
paint = new Paint();
paint.setColor(Color.RED);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 绘制一个红色圆形
canvas.drawCircle(100, 100, 50, paint);
}
}
视图层次结构[编辑 | 编辑源代码]
性能优化[编辑 | 编辑源代码]
使用View时应注意: 1. 避免过度绘制 2. 使用`ViewStub`延迟加载 3. 优化布局层次 4. 使用`merge`标签减少视图层级
相关概念[编辑 | 编辑源代码]
- ViewGroup - View的容器类
- LayoutInflater - 视图加载器
- Canvas - 绘图画布
- MotionEvent - 触摸事件类
实际应用[编辑 | 编辑源代码]
View在Android开发中被广泛用于: 1. 创建自定义UI组件 2. 实现动画效果 3. 构建复杂交互界面 4. 开发游戏图形