对于初学着来说,他们习惯了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软键盘弹出时不把布局顶上去的解决方法
  4. 输入法弹出后,不影响activity原有布局(android:windowSoftInputMo
  5. Android 解屏代码
  6. android 实现代码关机
  7. Android中的表格布局TableLayout
  8. Android 学习笔记6 —— Activity 布局学习1
  9. Android 文件管理器 Android文件管理器源代码

随机推荐

  1. android(Import Android(安卓)demo to Ecl
  2. 搭建 Android(安卓)2.2 开发环境
  3. Android异步处理四:AsyncTask的实现原理
  4. Android(安卓)- OpenCv - 解决预览图像自
  5. [Android引擎]Android游戏框架AndE…
  6. EditText属性及使用
  7. (学习笔记) Android(安卓)  Activity相关
  8. Android(安卓)imageView ScaleType.FIT_C
  9. 安卓布局属性代码中文注解
  10. android开发每日汇总【2011-12-6】