跳转到内容

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);
    }
}

视图层次结构[编辑 | 编辑源代码]

graph TD A[View] --> B[ViewGroup] B --> C[LinearLayout] B --> D[RelativeLayout] A --> E[TextView] A --> F[Button] A --> G[ImageView]

性能优化[编辑 | 编辑源代码]

使用View时应注意: 1. 避免过度绘制 2. 使用`ViewStub`延迟加载 3. 优化布局层次 4. 使用`merge`标签减少视图层级

相关概念[编辑 | 编辑源代码]

实际应用[编辑 | 编辑源代码]

View在Android开发中被广泛用于: 1. 创建自定义UI组件 2. 实现动画效果 3. 构建复杂交互界面 4. 开发游戏图形