写程序的时候,关于布局方面遇到并解决的问题
1.自定义View及其layout属性.
自定义View:
[java]view plaincopy publicclassDrawViewextendsView{ //构造函数 publicDrawView(Contextcontext,AttributeSetattrs){ super(context,attrs); } @Override protectedvoidonDraw(Canvascanvas){ canvas.drawLine(10,10,500,500,mPaint); super.onDraw(canvas); } }
特别注意,其构造函数有三种,即DrawView()/DrawView(Context context)/DrawView(Context context,AttributeSet attrs)。在创建自定义View后,一般需要实现三个构造函数,否则在layout中将出错。其实只实现最后一种也是没有问题的。
在layout中要使用自定义View有两种方法:
a.自定义View是公共类
[xhtml]view plaincopy <com.dev.DrawView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="10"android:background="@android:color/transparent"/>
其中com.dev.DrawView是自定义View的位置.
b.自定义View是内部类
[c-sharp]view plaincopy <view class="com.dev.ctivity01$DrawView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="10"android:background="@android:color/transparent"/>
此时,DrawView是在Activity01内部定义的。
2.在Android模拟器中运行软件非全屏的解决
需要将AndroidManifest.xml文件中的的miniSdkVersion的值设置为4以上,否则分辨率一直会是320*480.
AndroidManifest.xml
[xhtml]view plaincopy <?xmlversion="1.0"encoding="utf-8"?> <manifestxmlns:android="/apk/res/android" package="com.dev" android:versionCode="1" android:versionName="1.0" > <uses-sdkandroid:minSdkVersion="4"/> <applicationandroid:icon="@drawable/icon"android:label="@string/app_name"> <activityandroid:name=".Activity01 android:label="@string/app_name"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest> 3. layout中常用组件属性 android:id —— 为控件指定相应的ID
android:text —— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串
android:grivity —— 指定控件的基本位置,比如说居中,居右等位置
android:textSize —— 指定控件当中字体的大小
android:background —— 指定该控件所使用的背景色,RGB命名法
android:width —— 指定控件的宽度
android:height —— 指定控件的高度
android:padding* —— 指定控件的内边距,也就是说控件当中的内容
android:sigleLine —— 如果设置为真的话,则将控件的内容在同一行当中进行显示