1. 程式人生 > >view與viewgroup

view與viewgroup

. Android的基本元件 1.1 Activity 1.1.1 Activity代表手機的一個螢幕 1.1.2 一個Android程式由多個Activity組成,即:一個Android程式由多屏內容組成 1.1.3 Activity相當於一個展板,本身沒有可視的內容,你把畫(View)貼到展板上就可以展示出來了 1.2 Service 1.2.1 不可見的元件 1.2.2 在後臺執行 1.2.3 為其他元件提供後臺服務 1.2.4 監控其他元件的執行狀態 1.2.5 後臺播放音樂 1.3 BroadcastReceiver:廣播訊息監聽器 1.3.1 作用:用來監聽廣播,eg:收簡訊的廣播 往手機推送訊息 1.4 ContentProvider:內容提供者 1.4.1 幫助不同的應用程式間交換資料,eg:獲取通訊錄資訊 1.5 Intent和IntentFilter 意圖 Activity、Service、BroadcastReceiver之間通訊的載體,傳遞資料

  1. View和ViewGroup介紹 View類似於swing中的JPanel,代表一個空白的矩形區域,Android應用中的絕大部分UI元件都繼承於View或其子類 View還一個重要的子類ViewGroup,它通常作為其它元件的[容器]使

    簡單來講View是所有控制元件的父控制元件,ViewGroup可以包含其它的View物件,並且是所有佈局控制元件的父類 Activity相當於一個展板,本身沒有可視的內容,你把畫(View)貼到展板上就可以展示出來了 setContentView(view)

.Paint的應用 `public class MyView extends View { private Paint paint;//定義畫筆 public MyView(Context context) { super(context); paint = new Paint();//實現畫筆 paint.setColor(Color.RED);//畫筆顏色,紅色 paint.setStyle(Paint.Style.STROKE);//畫筆為空心 //該方法即為設定基線上那個點究竟是left,center,還是right 這裡我設定為center paint.setTextAlign(Paint.Align.CENTER); // paint.setStyle(Paint.Style.FILL);//畫筆為實心 } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // canvas.drawCircle(200,200,100,paint);//畫圓

// Path path = new Path(); // path.moveTo(100,100);//將起始點設定到x,y點,相當於設定一個點 // path.lineTo(200,200);//從當前點繪製一條線段到x,y點 // path.lineTo(100,200); // path.lineTo(100,100); // canvas.drawPath(path,paint);//三角形實心方法 // canvas.drawLine(300,300,400,400,paint);//三角形空心方法 // paint.setStrokeWidth(10);//畫筆粗細 String hh=”中華人民共和國萬歲”;//定義一個字串 canvas.drawText(hh,500,400,paint); //凹形 // path.moveTo(200,200); // path.lineTo(300,200); // path.lineTo(300,300); // path.lineTo(400,300); // path.lineTo(400,200); // path.lineTo(500,200); // path.lineTo(500,500); // path.lineTo(200,500); // path.close(); // canvas.drawPath(path,paint);

    //凸形

// Path path1 = new Path(); // path1.moveTo(300,600); // path1.lineTo(500,600); // path1.lineTo(500,800); // path1.lineTo(700,800); // path1.lineTo(700,1100); // path1.lineTo(100,1100); // path1.lineTo(100,800); // path1.lineTo(300,800); // path1.close(); // canvas.drawPath(path1,paint);

    Rect rect = new Rect(100,100,500,500);//畫一個矩形
    Paint rectPaint = new Paint();
    rectPaint.setColor(Color.BLUE);
    rectPaint.setStyle(Paint.Style.FILL);
    canvas.drawRect(rect, rectPaint);

    Paint textPaint = new Paint();
    textPaint.setColor(Color.WHITE);
    textPaint.setTextSize(50);
    textPaint.setStyle(Paint.Style.FILL);
    //該方法即為設定基線上那個點究竟是left,center,還是right  這裡我設定為center
    textPaint.setTextAlign(Paint.Align.CENTER);

    Paint.FontMetrics fontMetrics = textPaint.getFontMetrics();
    float top = fontMetrics.top;//為基線到字型上邊框的距離,即上圖中的top
    float bottom = fontMetrics.bottom;//為基線到字型下邊框的距離,即上圖中的bottom

    int baseLineY = (int) (rect.centerY() - top/2 - bottom/2);//基線中間點的y軸計算公式

    canvas.drawText("你好世界",rect.centerX(),baseLineY,textPaint);

// Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.dog);//圖片 // canvas.drawBitmap(bitmap,400,100,paint);//圖片顯示的位置 } }`