顯示具有 JAVA 標籤的文章。 顯示所有文章
顯示具有 JAVA 標籤的文章。 顯示所有文章

7/05/2012

[Android] 滿足各種不同螢幕尺寸

Android因為為開放性,各家的手機業者都可以任意的開發屬於各家廠牌風格的手機,與提供了更多元的螢幕尺寸和不同的裝置外型,消費者可以依自己的需求與喜好選擇屬於自己個性的手機來使用,相反的,身為Android應用程式開發者,為了支持不同家手機與支援多種螢幕,比其它手機平台(iphone,windows phone)開發就相對滴辛苦些,因為要針對不同的尺寸大小螢幕去最佳化UI的擺設和大小,也就是如何設計Android UI 滿足各不同的螢幕尺寸?

6/28/2012

Android 4.1 果凍豆

2012年6月27日就在google i/o的年度盛會,而這場盛會叫有看頭的是發佈Nexus 7平價版的平版電腦,這款是首度google與台灣華碩共同合作的第一台平板電腦,想當年htc也有跟google合作推出智慧型手機(Nexus One),此款平板電腦命名為Nexus 7,華碩電腦董事長施崇棠也親臨現場,更接受會場6000人次的表揚,可說是替台灣出了名,不過,聽說這款平板google要求華碩4個月時間內完成,大大考驗台灣人於手持裝置的開發能量.

mobile01-006f0038e3c7e83563b44fcbbfe07282

2/03/2012

Proguard GUI

上篇告訴大家如何透過Proguard保護自己的app,最後有產生4個檔案,這4個檔案是有用的,匯出 apk 檔成功,Refresh 專案,就可看到在專案底下有個 proguard 目錄,其中有許多關於在經過 Proguard 混淆後的專案參數資料可以參考。
image

12/08/2011

Android OpenGL : 3D 座標轉換

Coordinate System坐標系
OpenGL使用了右手坐標系統,右手坐標系判斷方法:在空間直角坐標系中,讓右手拇指指向x軸的正方向,食指指向y軸的正方向,如果中指能指向z軸的正方向,則稱這個坐標係為右手直角坐標系


12/07/2011

Android OpenGL ES : 多邊形

一個3D圖形通常是由一些小的基本元素(頂點,邊,面,多邊形)構成,每個基本元素都可以單獨來操作。
Vertex (頂點)
頂點是3D建模時用到的最小構成元素,頂點定義為兩條或是多條邊交會的地方。在3D模型中一個頂點可以為多條邊,面或是多邊形所共享。一個頂點也可以代表一個點光源或是Camera的位置。下圖中標識為黃色的點為一個頂點(Vertex)。


Android OpenGL ES : VIEW

在Andorid平台上構造一個OpenGL View非常簡單,主要有兩方面的工作:
GLSurfaceView
Android平台提供的OpenGL ES API主要定義在包android.opengl ,javax.microedition.khronos.egl ,javax.microedition.khronos.opengles ,java.nio 等幾個包中,其中類GLSurfaceView 為這些包中的核心類:

  1. 提供一些事件處理函式碼來連接到OpenGL ES中視域系統(View System)。
  2. 提供一些事件處理函式碼以使OpenGL ES的工作與活動的生命週期。
  3. 很容易選擇合適的幀緩衝區的像素格式。
  4. 建立和管理一個單獨的渲染執行緒,實現了流暢的動畫。
  5. 提供易於使用的除錯工具用於追踪的OpenGL ES API測試和檢查錯誤。

12/05/2011

min3d builld

     3d遊戲引擎網路上找找有數十種,目前剛玩的min3d,此為一個清亮的android的3d遊戲引擎,基於android的OpenGL ES 1.X的技術,它的API設計與Android源碼中的opengl設計非常類似,引擎也提供了一組方便的api來進行三維數據的讀取與操作,請先透過svn方式抓取官網的source code,並依下列方式設定專案內容:
1. Download source codes from Google code SVN server to your local folder (e.g. min3d)
Suppose Eclipse (Helios Release) and ADT 0.9.7 will be used.
2. In Eclipse, select "File --> Import...", then select "Existing Projects into Workspace", and then click "Next"

[Android] Third-party library

對一個開放式的作業系統,必須要了解如何在程式中加入網路上Third-party 所開發的library,即可大幅節省開發時間.
通常會提供 *.jar的library方式讓開發者下載與加入專案,請遵照下列方式即可:

11/08/2011

[Android] ListActivity

要建立清單式的畫面,有兩種方式一種為建立layout,一種為繼承ListActivity,交由library去建立.空白的ListActivity架構如下:

9/29/2011

2011台北國際發明展


第7屆「台北國際發明暨技術交易展」將於本(2011)年9月29日至10月2日盛大展出,為服務與鼓勵更多廠商,今年將擴大攤位數為1,100個攤位,匯聚國內外近700家廠商、發明人、研發單位及學術單位參展,預計吸引超過10萬人次國內外參觀人潮。 本展向來為亞洲區智慧財產與技術媒合的最佳平台,現場超過2,000項創新發明品及專利技術,展現台灣產學研機構在技術移轉的努力與研發的用心,讓參觀民眾看見未來生活趨勢,讓台灣創意流通全球,更使企業尋得全新商機。

9/27/2011

[Android] 成功發佈<儀科中心APP>

最近和主管討論,看看可不可以幫本中心寫個APP,至於要寫什麼APP能代表中心--那就是<儀科中心APP>,剛剛才測試完畢上傳,請瀏覽過這個網頁的趕快去下載使用吧~
1.利用QR Code方式連結下載網頁:

7/24/2011

[Android] 影像處理_灰階轉換

Android內建一些library可以拿來做些基本的影像處理,如比較重要的是當抓到的影像來源為彩色RGB的影像時,須先進行灰階影像處理,處理後才利於之後的其他影像處理~
程式碼如下
image

[Android] 相機使用

Android使用相機可以有兩個方法,一種是呼叫相機應用程式,另一種就是實作相機應用程式套用在自己的應用程式上,以上這兩種都是一樣麻煩,不過後一種變化性比較大,可以加入一些設定的功能,今天就來提第二種方法,使用前先聊聊一些android提供的library~
SurfaceView
SurfaceView介面元件可以想成是一塊畫布,程式開發者可以在上面畫上任何東西。在這個程式中SurfaceView是用來顯示從相機取得的畫面。SurfaceView的存取要透過SurfaceHolder物件,而SurfaceHolde類別的addCallback方法能讓我們設定當SurfaceView建立、改變與銷毀時該做的事,因此我們可於SurfaceView建立時打開相機、啟動預覽功能,而於銷毀時關掉相機。下列圖示可以幫助了解,故在layout就要加入SurfaceView這個元件使用
image

7/20/2011

[Andorid] BitmapDrawable 轉換為 Bitmap

最近忙著趕在月底趕著給主管的專案,所以一直沒時間寫部落格,在這寫專案的過程中,學習到很多Android開發的程式經驗,很想跟大家分享阿,等到8月再跟大家分享吧,今天利用空閒時間寫點…
Android要做影像處理,要做影像處理之前可以先去找找有沒有提供的library,確實有很多,例如彩色轉灰階等,今天要介紹~
BitmapDrawable 轉換為 Bitmap :
Bitmap.Config c =bmpDrawable.getOpacity() != PixelFormat.OPAQUE ?
        Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565;    //取得bmpDrawable顏色格式
bmpImageOK = Bitmap.createBitmap(
                 bmpDrawable.getIntrinsicWidth(), bmpDrawable.getIntrinsicHeight(), c);
Canvas canvas = new Canvas(bmpImageOK);
bmpDrawable.setBounds(0, 0, bmpDrawable.getIntrinsicWidth(),
        bmpDrawable.getIntrinsicHeight());
bmpDrawable.draw(canvas);
相反~
Bitmap 轉換為 BitmapDrawable :
Drawable drawable = new BitmapDrawable(bitmap);return drawable;

7/03/2011

[Android] 如何在手機上使用Google Map

Google Map為一個獨立的add-on API,所以並無包裝於Andorid Platform中,此API主要由MapView與MapController組成而成,且MapView會取得使用者的地圖位置,也因此在使用時須先於Google上註冊取得APIKey才得以顯示出地圖畫面
image

7/02/2011

[Android] Log.d 真好用

Android是個多工的作業系統,因為多工勢必要多多了解系統的排程與系統os對應用程式呼叫與編排,例如電話來了,activity 至 background時須將資料做預先儲存的動作,要不然輸入到一半的資料不就白費了,下面是android官網提供的資料,android lifecycle:
image

7/01/2011

[Android] Broadcast Receivers

       當應用程式希望對外部的事件發生時,需做一些的處理時,就需要用到Broadcast Intent Receiver,例如:電池電量快用盡時,網路連線斷線時,可能需要告知使用者須趕緊完成未完成的處理,或者是有來電或簡訊通知時,告知使用者是否要處理,應用程式並不會因為Broadcast Receivers被呼叫而被它執行起來。而且當Broadcast Receivers被觸發時,系統會依宣告的需求來執行相對應的應用程式。應用程式可以利用 Context.sendBroadcast() 方法來發出他們自己的intent broadcast給其他的應程式。

6/30/2011

[Android] 組成

Android應用程式基本上是由下面四個區塊組合而成:
1. Activity
2. Broadcast Intent Receiver
3. Service
4. Content Provider

6/27/2011

[Android] 2D Introduction

Android提供2D繪圖,其2D繪圖使用下列的class :
1. Drawable – android.graphics.drawable (二維圖形)
2. Animation – android.view.animation (2維動畫)
3. Canvas – android.graphics.Canvas(畫布) ; View, SurfaceView (繪製圖形)
4. 2D Matrix
Drawable class ~ “something that can be drawn”

6/21/2011

[Android] 支援不同解析度

目前各家手機商出的手機盡不相同,每種螢幕的解析度也不一樣,況且Andorid也不做一併統一的方式,所以開發者遇到第一件麻煩的事情,就是建立不同家手機版本的顯示畫面,才能支援不同螢幕解析度的手機,不過各位開發者可以用下列方法偷吃步
在 AndroidManifest 清單中加入如下設定:
<supports-screens 
android:largeScreens="true" 
android:normalScreens="true" 
android:smallScreens="true" 
android:anyDensity="false"/>
「normalScreens」代表的是一般解析度(如 G1, Hero),「smallScreens」代表的是較低解析度(如 Tatoo)。