对于初学着来说,他们习惯了Android 传统的页面布局方式,如下代码:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><TextView      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/hello"    /></LinearLayout>


当然上面的布局方式可以帮助我们完成简单应用的开发了,但是如果你想写一个复杂的应用,这样就有点牵强了,大家不信可以下源码都研究看看,高手写的布局方式,如上面的布局高手通常是这样写的:

    <?xml version="1.0" encoding="utf-8"?>      <A>          <B></B>      </A>  其中 A extends LinerLayout, B extends TextView.



写一个简单的Demo ,具体步骤如下:


首先新建一个Android 工程 命名为ViewDemo .

然后自定义一个View 类,命名为MyView(extends View) .代码如下:

    package cn.caiwb.view;      import android.content.Context;      import android.graphics.Canvas;      import android.graphics.Color;      import android.graphics.Paint;      import android.graphics.Rect;      import android.graphics.Paint.Style;      import android.util.AttributeSet;      import android.view.View;      public class MyView extends View {          private Paint mPaint;          private Context mContext;          private static final String mString = "hi";                    public MyView(Context context) {              super(context);                    }          public MyView(Context context,AttributeSet attr)          {              super(context,attr);                    }          @Override          protected void onDraw(Canvas canvas) {              // TODO Auto-generated method stub              super.onDraw(canvas);                            mPaint = new Paint();                            //设置画笔颜色              mPaint.setColor(Color.RED);              //设置填充              mPaint.setStyle(Style.FILL);                            //画一个矩形,前俩个是矩形左上角坐标,后面俩个是右下角坐标              canvas.drawRect(new Rect(10, 10, 100, 100), mPaint);                            mPaint.setColor(Color.BLUE);              //绘制文字              canvas.drawText(mString, 10, 110, mPaint);          }      }  


然后将我们自定义的View 加入到main.xml 布局文件中,代码如下:
    <?xml version="1.0" encoding="utf-8"?>      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"          android:orientation="vertical"          android:layout_width="fill_parent"          android:layout_height="fill_parent"          >      <TextView            android:layout_width="fill_parent"           android:layout_height="wrap_content"           android:text="@string/hello"          />      <cn.caiwb.viewr.MyView          android:layout_width="fill_parent"           android:layout_height="fill_parent"       />      </LinearLayout>  


最后执行之~~~ ok

更多相关文章

  1. Android应用程序组件Content Provider的启动过程源代码分析(3)
  2. Android应用程序组件Content Provider的启动过程源代码分析(5)
  3. Android代码实现APK文件的安装与卸载
  4. android启动另一应用
  5. android 9.0 startService启动Servcie的过程分析
  6. android 命令行执行java 的方式
  7. android studio 2.2 ndk jni 开发 调试 hello world
  8. Android、JUnit深入浅出(七)——总…
  9. Android网络连接判断与处理

随机推荐

  1. Android学习笔记(6)————Android的线
  2. android一款仪表盘控件
  3. android mediaplayer 音效 代码
  4. [android开发必备]Android开发者社区汇总
  5. Speeding Up the Android Emulator on In
  6. findbugs在android studio中的使用
  7. android UI布局练习3
  8. android 加密数据库
  9. android 编译 英文说明文档
  10. Android中Preference的使用以及监听事件