日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android開發(fā)速成簡潔教程九:創(chuàng)建應用程序框架

Android簡明開發(fā)教程八說明了程序需要實現(xiàn)的功能,就可以創(chuàng)建Android項目了。請參見Android簡明開發(fā)教程三:第一個應用Hello World ,創(chuàng)建一個新項目AndroidGraphics2DTutorial。今天先介紹創(chuàng)建的程序的框架。然后再項目添加如下類定義:

專注于為中小企業(yè)提供成都網(wǎng)站建設、成都網(wǎng)站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)浦城免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。

添加第三方庫文件

AndroidGraphics2DTutorial調用了引路蜂二維圖形庫,因此需要在項目中添加第三方庫引用 (libgisengine.jar),打開Android屬性窗口,添加External JARs。把libgisengine.jar 添加到項目中,引路蜂二維圖形庫是引路蜂地圖開發(fā)包的一部分。添加庫引用可以參見 Android引路蜂地圖開發(fā)示例:基本知識。

類說明,下表列出了項目中定義的類的簡要說明:

說明
AndroidGraphics2DApplication應用程序類,為Application子類
AndroidGraphics2DTutorial主Activity,為ListActivity子類,用于列出其它示例。
GuidebeeGraphics2DSurfaceViewSurfaceView子類用于顯示圖形
GuidebeeGraphics2DViewView子類用于顯示圖形,與GuidebeeGraphics2DSurfaceView 功能一樣,在程序中可以互換。
SharedGraphics2DInstance定義了共享類對象,主要包含Graphics2D
Graphics2DActivityActivity子類,為所有示例基類,定義一些所有示例共享的類變量和函數(shù)。
Bezier,Brush,Colors,F(xiàn)ont,Image,Path,Pen,Shape,Transform為Graphics2DActivity的子類,為二維圖形演示各個功能

AndroidGraphics2DApplication ,其實在一般的Android應用中,無需定義Application的派生類,比如在Hello World中就沒有定義,當是如果想在多個Activity中共享變量,或是想初始化一些全局變量,可以定義Application的派生類,然后可以在 Activity或Service中調用 getApplication() 或 getApplicationContext()來取得Application 對象,可以訪問定義在Application中的一些共享變量。在這個例子中AndroidGraphics2DApplication嚴格些也可不定 義,為了說明問題,還是定義了用來初始化Graphics2D實例,Graphics2D實例可以被所有示例Activity,如Colors,F(xiàn)ont 訪問。如果定義了Application的派生類,就需要在AndroidManifest.xml中說明Application派生類的位置。

 
 
 
 
  1.       package=”com.pstreets.graphics2d” 
  2.       android:versionCode=”1″ 
  3.       android:versionName=”1.0″> 
  4.     
  5.          android:icon=”@drawable/icon” android:label=”@string/app_name”> 
  6.         
  7.                   android:label=”@string/app_name”> 
  8.              
  9.                  
  10.                  
  11.              
  12.          
  13.   … 
  14.      
  15.      
  16.  
  17.     

Application 可以重載 onCreate()和 onTerminate() ,onCreate()在應用啟動時執(zhí)行一次,onTerminate()在應用推出執(zhí)行一次。 AndroidGraphics2DApplication 的onCreate() 中初始化Graphics2D實例:

 
 
 
 
  1. public void onCreate() { 
  2.       SharedGraphics2DInstance.graphics2d= 
  3.           new Graphics2D(SharedGraphics2DInstance.CANVAS_WIDTH, 
  4.             SharedGraphics2DInstance.CANVAS_HEIGHT); 
  5.      } 

AndroidGraphics2DTutorial 為ListActivity子類,直接從AndroidManifest.xml中讀取Intent-Filter Catetory 為 com.pstreets.graphics2d.SAMPLE_CODE 的所有Activity。

 
 
 
 
  1. private static final String SAMPLE_CATEGORY="com.pstreets.graphics2d.SAMPLE_CODE";    
  2.     Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); 
  3.     mainIntent.addCategory(SAMPLE_CATEGORY); 
  4.     ... 

GuidebeeGraphics2DSurfaceView 和 GuidebeeGraphics2DView 分別為SurfaceView 和View的子類,都可以用來顯示圖形結果。在程序中可以互換。

 
 
 
 
  1. package com.pstreets.graphics2d;      
  2.     import android.content.Context; 
  3.     import android.graphics.Canvas; 
  4.     import android.util.AttributeSet; 
  5.     import android.view.View;     
  6.     public class GuidebeeGraphics2DView extends View {    
  7.      public GuidebeeGraphics2DView(Context context, AttributeSet attrs, 
  8.        int defStyle) { 
  9.       super(context, attrs, defStyle); 
  10.          }    
  11.      public GuidebeeGraphics2DView(Context context, AttributeSet attrs) { 
  12.       super(context, attrs);      
  13.      }  
  14.      public GuidebeeGraphics2DView(Context context) { 
  15.       super(context); 
  16.       
  17.      }    
  18.      public void onDraw(Canvas canvas) { 
  19.       super.onDraw(canvas); 
  20.       canvas.drawColor(0xFFFFFFFF); 
  21.       if (SharedGraphics2DInstance.graphics2d != null) { 
  22.        int offsetX = (getWidth() - 
  23.          SharedGraphics2DInstance.CANVAS_WIDTH) / 2; 
  24.        int offsetY = (getHeight() 
  25.          - SharedGraphics2DInstance.CANVAS_HEIGHT) / 2; 
  26.        canvas.drawBitmap(SharedGraphics2DInstance.graphics2d.getRGB(), 0, 
  27.          SharedGraphics2DInstance.CANVAS_WIDTH, 
  28.          offsetX, offsetY, 
  29.          SharedGraphics2DInstance.CANVAS_WIDTH, 
  30.          SharedGraphics2DInstance.CANVAS_HEIGHT, 
  31.          true, null); 
  32.       } 
  33.      }    
  34.     }
 
 
 
 
  1. package com.pstreets.graphics2d;      
  2.     import android.content.Context; 
  3.     import android.graphics.Canvas; 
  4.     import android.util.AttributeSet; 
  5.     import android.view.SurfaceHolder; 
  6.     import android.view.SurfaceView;      
  7.     public class GuidebeeGraphics2DSurfaceView extends 
  8.        SurfaceView implements SurfaceHolder.Callback {  
  9.      SurfaceHolder holder;    
  10.      private void initHolder() { 
  11.       holder = this.getHolder(); 
  12.       holder.addCallback(this); 
  13.      }    
  14.      public GuidebeeGraphics2DSurfaceView(Context context, 
  15.        AttributeSet attrs, 
  16.        int defStyle) { 
  17.       super(context, attrs, defStyle); 
  18.       initHolder();  
  19.      }    
  20.      public GuidebeeGraphics2DSurfaceView(Context context, 
  21.        AttributeSet attrs) { 
  22.       super(context, attrs); 
  23.       initHolder();   
  24.      }    
  25.      public GuidebeeGraphics2DSurfaceView(Context context) { 
  26.       super(context); 
  27.       initHolder();   
  28.      }    
  29.      @Override 
  30.      public void surfaceChanged(SurfaceHolder arg0, 
  31.        int arg1, int arg2, int arg3) { 
  32.       // TODO Auto-generated method stub 
  33.      }    
  34.      @Override   public void surfaceCreated(SurfaceHolder arg0) { 
  35.       new Thread(new MyThread()).start();     
  36.      }    
  37.      @Override 
  38.      public void surfaceDestroyed(SurfaceHolder arg0) { 
  39.       // TODO Auto-generated method stub      
  40.      }    
  41.      class MyThread implements Runnable {     
  42.       @Override 
  43.       public void run() { 
  44.        Canvas canvas = holder.lockCanvas(null); 
  45.        canvas.drawColor(0xFFFFFFFF); 
  46.        if (SharedGraphics2DInstance.graphics2d != null) { 
  47.         int offsetX = (getWidth() - 
  48.           SharedGraphics2DInstance.CANVAS_WIDTH) / 2; 
  49.         int offsetY = (getHeight() - 
  50.           SharedGraphics2DInstance.CANVAS_HEIGHT) / 2; 
  51.         canvas.drawBitmap 
  52.           (SharedGraphics2DInstance.graphics2d.getRGB(), 
  53.           0, SharedGraphics2DInstance.CANVAS_WIDTH, 
  54.           offsetX, 
  55.           offsetY, 
  56.           SharedGraphics2DInstance.CANVAS_WIDTH, 
  57.           SharedGraphics2DInstance.CANVAS_HEIGHT, 
  58.           true, null); 
  59.        } 
  60.        holder.unlockCanvasAndPost(canvas);    
  61.       }   
  62.      }    
  63.     } 

SurfaceView 動態(tài)顯示性能比較好,一般用在游戲畫面的顯示。圖形的繪制可以在單獨的線程中完成。

修改 res\layout\main.xml

 
 
 
 
  1.  
  2.     android:orientation=”vertical” 
  3.     android:layout_width=”fill_parent” 
  4.     android:layout_height=”fill_parent” 
  5.     > 
  6.      android:id=”@+id/graphics2dview” 
  7.    
  8.      android:layout_width=”fill_parent” 
  9.      android:layout_height=”fill_parent” /> 
  10.  

如果使用 GuidebeeGraphics2DView作為顯示,則只需將上面紅色部分該成GuidebeeGraphics2DView即可。

為了能在AndroidGraphics2DTutorial 列表中列出,對項目中的示例Activity的都定義下列intent-filter

 
 
 
 
  1.  
  2.              
  3.                  
  4.                  
  5.              
  6.          

這樣就完成了程序框架的設計,起始界面如下:


新聞名稱:Android開發(fā)速成簡潔教程九:創(chuàng)建應用程序框架
網(wǎng)址分享:http://www.5511xx.com/article/dhjspes.html