1. 程式人生 > >Android第一次

Android第一次

1. 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之間通訊的載體,傳遞資料

2. View和ViewGroup介紹    View類似於swing中的JPanel,代表一個空白的矩形區域,Android應用中的絕大部分UI元件都繼承於View或其子類    View還一個重要的子類ViewGroup,它通常作為其它元件的[容器]使        簡單來講View是所有控制元件的父控制元件,ViewGroup可以包含其它的View物件,並且是所有佈局控制元件的父類    Activity相當於一個展板,本身沒有可視的內容,你把畫(View)貼到展板上就可以展示出來了    setContentView(view)

3. 自定義檢視(onDraw)   3.1 顏色四種設定方式       canvas.drawColor(Color.RED);//系統顏色(Color.RED)

      canvas.drawColor(Color.rgb(100, 150, 200));//rgb       canvas.drawColor(Color.argb(100, 100, 150, 200));//argb,其中第一引數為透明度       canvas.drawColor(Color.parseColor("#44E21D"));//16進位制   3.2 畫板背景       canvas.drawColor(Color.BLUE)   3.3 畫筆設定     3.3.1 實心或空心           paint.setStyle(Style.FILL);//實心           paint.setStyle(Style.STROKE);// 空心     3.3.2 粗細           paint.setStrokeWidth(10)     3.3.3 抗鋸齒           paint.setAntiAlias(true);      3.3.4 顏色設定           paint.setColor(Color.parseColor("#103864"));     

//    筆
    private Paint Paint;

    public MyView(Context context) {
        super(context);
        Paint=new Paint();
//        設定背景顏色
        Paint.setColor(Color.RED);
//        設定空心
        Paint.setStyle(android.graphics.Paint.Style.STROKE);
//        設定實心
//        Paint.setStyle(android.graphics.Paint.Style.FILL);
//        設定抗鋸齒
        Paint.setAntiAlias(true);
//        設定粗細
        Paint.setStrokeWidth(3);
//        設定字型大小
        Paint.setTextSize(50);
    }

4. 畫圖形   4.1 畫圓       canvas.drawCircle(200, 100, 100, paint)   4.2 畫矩形       canvas.drawRect(0, 200, 200, 400, paint);       canvas.drawRect(rect, paint);       左上角、右下角   4.3 畫多邊形(三角形)     4.3.1 drawLine方式     4.3.2 drawPath方式           Path             moveTo(float x, float y):將起始點設定到x,y點             lineTo(float x, float y):從當前點繪製一條線段到x,y點             reset():清除path設定的所有屬性             close():回到初始化形成封裝的曲線     4.3.3 如果畫筆為實心,畫線與Path方式的區別           drawLine=空心,drawPath=實心   4.5 畫文字       drawText()       paint.setTextSize(50);// 設定文字大,單位為dp   4.6 畫圖       drawBitmap    點陣圖       Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.qq);       注意事項:圖片名不能是漢字或空格 

//    重寫父類畫畫方法
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
//        畫圓
//        canvas.drawCircle(200,200,100,Paint);
//        畫矩形
        //        canvas.drawLine(起始X,起始Y,結束X,結束Y,Paint);
//        canvas.drawRect(100,100,300,200,Paint);
//        畫三角形
//        canvas.drawLine(100,200,200,100,Paint);
//        canvas.drawLine(100,200,300,200,Paint);
//        canvas.drawLine(300,200,200,100,Paint);

//        圖片
        Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.dog);
        bitmap.setWidth(100);
        bitmap.setHeight(100);
        canvas.drawBitmap(bitmap,100,100,Paint);


//        先new一個path物件
//        注:必須設定為空心,實心無法展示
//        Path path=new Path();
//        起始X,Y
//        path.moveTo(100,200);
//        結束X,Y
//        path.lineTo(200,200);
//        canvas.drawPath(path,Paint);
//        凸字
//        Path path=new Path();
//        path.moveTo(100,200);
//        path.lineTo(200,200);
//        path.moveTo(200,200);
//        path.lineTo(200,100);
//        path.moveTo(200,100);
//        path.lineTo(300,100);
//        path.moveTo(300,100);
//        path.lineTo(300,200);
//        path.moveTo(300,200);
//        path.lineTo(400,200);
//        path.moveTo(400,200);
//        path.lineTo(400,300);
//        path.moveTo(100,300);
//        path.lineTo(400,300);
//        path.moveTo(100,200);
//        path.lineTo(100,300);
//        canvas.drawPath(path,Paint);

//        一段話居中
//        String str="中華人民共和國萬歲";
//        int width=this.getWidth();
//        int height=this.getHeight();
//        float strSize=Paint.getTextSize();
//        float x=(width-str.length()*strSize)/2;
//        float y=(height-strSize)/2;
//        canvas.drawText(str,x,y,Paint);

    }

 安卓工程目錄     模組         manifests             僅有一個檔案,系統清單檔案,相當於web.xml         java             放原始檔         res(放系統資原始檔,一個很重要的的類R,自動生成,resource的縮寫)             drawable(放圖片資源)             layout(放佈局檔案)                           dp(密度,相當於width中的百分比) sp(密度,相當於width中的的數值xxx.px)