我的位置: 首頁(yè) > 學(xué)習(xí)專(zhuān)區(qū) > 安卓技術(shù) > Android 中自定義View的應(yīng)用

Android 中自定義View的應(yīng)用

2012-01-24 10:54:00
來(lái)源:
[導(dǎo)讀] view plaincopy to clipboardprint?android:orientation= "vertical "android:layout_width= "fill_parent "android:layout_height= "fill_pa

view plaincopy to clipboardprint?

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

當(dāng)然上面的布局方式可以幫助我們完成簡(jiǎn)單應(yīng)用的開(kāi)發(fā)了,但是如果你想寫(xiě)一個(gè)復(fù)雜的應(yīng)用,這樣就有點(diǎn)牽強(qiáng)了,大家不信可以下源碼都研究看看,高手寫(xiě)的布局方式,如上面的布局高手通常是這樣寫(xiě)的:

view plaincopy to clipboardprint?

view plaincopy to clipboardprint?

其中A extends LinerLayout, B extends TextView.

其中A extends LinerLayout, B extends TextView.

為了幫助大家更容易理解,我寫(xiě)了一個(gè)簡(jiǎn)單的Demo ,具體步驟如下:

首先新建一個(gè)Android 工程 命名為ViewDemo .

然后自定義一個(gè)View 類(lèi),命名為MyView(extends View) .代碼如下:

view plaincopy to clipboardprint?

package com.android.tutor;

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 = “Welcome to Mr Wei’s blog”;

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

//設(shè)置畫(huà)筆顏色

mPaint.setColor(Color.RED);

//設(shè)置填充

mPaint.setStyle(Style.FILL);

//畫(huà)一個(gè)矩形,前倆個(gè)是矩形左上角坐標(biāo),后面?zhèn)z個(gè)是右下角坐標(biāo)

canvas.drawRect(new Rect(10, 10, 100, 100), mPaint);

mPaint.setColor(Color.BLUE);

//繪制文字

canvas.drawText(mString, 10, 110, mPaint);

}

}

package com.android.tutor;

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 = “Welcome to Mr Wei’s blog”;

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

//設(shè)置畫(huà)筆顏色

mPaint.setColor(Color.RED);

//設(shè)置填充

mPaint.setStyle(Style.FILL);

//畫(huà)一個(gè)矩形,前倆個(gè)是矩形左上角坐標(biāo),后面?zhèn)z個(gè)是右下角坐標(biāo)

canvas.drawRect(new Rect(10, 10, 100, 100), mPaint);

mPaint.setColor(Color.BLUE);

//繪制文字

canvas.drawText(mString, 10, 110, mPaint);

}

}

然后將我們自定義的View 加入到main.xml 布局文件中,代碼如下:

view plaincopy to clipboardprint?

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

android:layout_width="fill_parent"

android:layout_height="fill_parent"

/>

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

android:layout_width="fill_parent"

android:layout_height="fill_parent"

/>

評(píng)論
熱點(diǎn)專(zhuān)題
>>
相關(guān)文章推薦
>>
深圳觀瀾電腦培訓(xùn) 高中生技術(shù)培訓(xùn) 高中生技校 深圳網(wǎng)絡(luò)工程師培訓(xùn)機(jī)構(gòu) 學(xué)技術(shù)學(xué)什么好呢 學(xué)技術(shù)學(xué)什么好 金三銀 android開(kāi)發(fā)培訓(xùn) android培訓(xùn)機(jī)構(gòu) 安卓APP開(kāi)發(fā)培訓(xùn) 安卓開(kāi)發(fā)培訓(xùn) 第二職業(yè)技術(shù)學(xué)校 第三職業(yè)技術(shù)學(xué)校 軟件自學(xué)網(wǎng) 學(xué)軟件開(kāi)發(fā) 深圳軟件開(kāi)發(fā) 計(jì)算機(jī)學(xué)校 計(jì)算機(jī)應(yīng)用技術(shù)課程 北大青學(xué)校 安卓培訓(xùn)多少錢(qián) 安卓學(xué)習(xí)培訓(xùn) 深圳測(cè)試工程師 深圳嘉華學(xué)校怎么樣 深圳SEO教程 深圳百度競(jìng)價(jià)培訓(xùn) 深圳電子商務(wù)學(xué)校 深圳淘寶培訓(xùn) 深圳android 電學(xué) 網(wǎng)店培訓(xùn)班 電商培訓(xùn) 電子商務(wù)培訓(xùn)班 電子商務(wù)培訓(xùn)網(wǎng) 開(kāi)網(wǎng)店培訓(xùn) 電商運(yùn)營(yíng)培訓(xùn) 電子商務(wù)學(xué)校 深圳電商培訓(xùn)班 深圳電商培訓(xùn)機(jī)構(gòu) 深圳百度競(jìng)價(jià)教程 網(wǎng)絡(luò)推廣培訓(xùn) 網(wǎng)絡(luò)推廣的方法 廣州專(zhuān)門(mén)java培訓(xùn) 廣州正規(guī)java培訓(xùn)中心 java語(yǔ)言培訓(xùn) it培訓(xùn)機(jī)構(gòu)排行榜
好吊妞免费视频在线观看,久久亚洲国产人成综合网,久久精品国产2020,欧美精品综合在线
亚洲欧美日韩另类在线观看 | 亚洲中文字字幕在线乱码 | 中文日韩欧免费精品视频 | 亚洲AV秘一区二区色 | 亚洲一区二区三区自拍公司 | 综合久久亚洲经典 |