發表文章

目前顯示的是 6月, 2018的文章

[ 開放資料part3 ] [android] 利用Volley在Android取得JSON字串(網路)

圖片
在開放資料part1、part2中所使用的方式為利用EXCEL以及臨時API網址, 那現在我們要來透過Volley,利用網址,來得到JSON字串囉 那現在就~開始囉! 六步驟發想 1.導入Volley 2.開啟網路權限 3.使用ListView來呈現 4.利用JsonObjectRequest類別來要求JSON資料 5. 以匿名類別Response.Listener/ErrorListener來進行監聽回應與錯誤 6.解析呈現方式 Step1.導入Volley(build.gradle-app) volley是個輕量的HTTP Request類別庫,而volley類別庫適合處理通訊頻繁且資料量不大的傳輸作業。 implementation 'com.android.volley:volley:1.1.0' (注意,舊版的gradle是使用 compile 'com.mcxiaoke.volley:library:1.1.0',所以在建專案的時候就要注意自己的版本喔 ) Step2.開啟網路權限 (在AndroidManifest.xml中) < uses-permission android :name= "android.permission.INTERNET" /> Step3.建立ListView 在activity_main.xml中加入ListView,並為他設立id“lv” (一開始將ListView直接丟進layout中,卻沒看到文字,不要緊張! 為他設立id後就會出現了,因為這件事花了很多時間的自己....) Step4.要求JSON資料並進行監聽事件 在這邊我們需要分成幾個步驟 1.匯入 ListView lv 與JSON資料的網址 protected ListView lv ; String url = "http://data.taipei/opendata/datalist/apiAccess?scope=resourceAquire&rid=a880adf3-d574-43...

[ 開放資料part1 ] [android] 利用EXCEL檔案格式來取得開放資料吧

圖片
EXCEL除了可以運算、紀錄資料外,由於EXCEL也可以儲存資料並表示資料與資料的二維關聯(甚至三圍),因此開放資料常常利用EXCEL的檔案格式(ex.xls檔或是csv檔等)來進行儲存與分享。 所以我們在這種撞快下就可以在APP開發時就直接下載並轉化為sqlite的資料庫,直接將資料綁在APP內,適合用於不需要常常更新的狀況,像是停車場的地理位置(像是名稱、地址、經緯度、收費標準等等) 那接下來我們就來看看該怎麼利用EXCEL檔在android studio中取得開放資料吧!! Step1.下載所需的EXCEL開放資料檔 我們可以在政府開放平台中,找到自己所需要的資料檔 以下方圖為例,新竹市公有停車場相關資訊 我們需要將檔案下載為CSV檔案 Step1-1.轉檔為CSV檔 若所需的資料沒有CSV檔,則可以透過其他檔案轉檔為CSV 下圖為xls檔,利用另存新檔,轉檔為CSV檔 Step2.建立Assets資料夾 我們需要將剛剛所下載的CSV檔放於Assets資料夾中, 回到Android studio ,在左方APP的位置按著右鍵-NEW-Folder-Assets Folder 這樣就成功建立完成了! Step3.將CSV檔匯入Assets資料夾內 1.在Assets的位置上按著右鍵-點選Reveal In Finder 2.此時便跳出main的資料夾,並點選Assets 3.將剛剛的CSV檔放入裡面 很好!現在CSV檔就被我們匯入了喔~ Step3.在MainActivity中進行讀取檔案 1.回到Android studio中,開啟MainActivity ,加入程式碼來讀取檔案囉 InputStreamReader is = new InputStreamReader(getAssets().open( "自己CSV的檔名.csv" )); 2.這時候看到紅色恐怖線線,別緊張!讓我們按下左方協助我們的紅色小燈泡 3.程式碼就被改變成這樣了~ Step4.加入程式碼讀取EXCEL內容 BufferedReader reader = new BufferedReader(is); reader.readLine(); String li...

[ 開放資料part2 ] [android] 非同步的網路工作來取得JSON字串吧

圖片
有時候我們有許多數據需要透過JSON字串的方式整理, 現在就讓我們透過非同步的方式來看看吧! step0.輸入所需的json字串,獲得臨時API step1.開啟網路權限 在AndroidManifest.xml中開啟網路權限 < uses-permission android :name= "android.permission.INTERNET" /> step2.建立新的class(GetNetworkJson) 由於無線網路很難保證穩定與速度,所以日前網路相關工作常使用非同步任務(AsyncTask)來進行存取,一方面不影響原本UI操作,一方面可以在背景慢慢下載網路資源。 在java下建立新class,名稱為 GetNetworkJson ,繼承AsyncTask。 step3.在GetNetworkJson檔上方匯入所需要的API元件 step4.寫入工作內容 將工作寫在doInBackground方法中,將與UI的連結寫在onPostExecute public class GetNetworkJson extends AsyncTask <String, Void, String>{ String data = "" ; InputStream inputStream = null ; private URL url ; @Override protected String doInBackground(String... urlStrings) { try { URL rul = new URL(urlStrings[ 0 ]); HttpsURLConnection httpURLConnection = (Http...

Facebook SDK [android] step.4 Facebook網站分享

圖片
Facebook SDK [android]            :程式碼             :補充說明資料 在前面我們已經學會了 [建立專案與申請應用程式編號] step.1建立專案與申請應用程式編號 [在專案中加入編號] step.2在專案中加入編號 [ Facebook登入與基本權限 ] step.3 Facebook登入與基本權限 現在呢~我們除了登入以外,還要進行FB的網站分享! 結果如下圖顯示 好的~那現在就讓我們開始吧!! Step1.延續之前的檔案 如果還沒看過或是想要複習的可以點擊此文最上方的連結喔 Step2.建立分享按鈕 在activity_main.xml中加入分享按鈕吧 < com.facebook.share.widget.ShareButton android :id= "@+id/fb_share_button" android :layout_width= "match_parent" android :layout_height= "wrap_content" android :layout_marginLeft= "50dp" android :layout_marginTop= "50dp" /> Step3.呼叫分享方法 在activity_main.xml中加入分享按鈕吧 ShareLinkContent content = new ShareLinkContent.Builder() .setContentUrl(Uri. parse ( " 想要分享的網址 " )) .build(); ShareButton shareButton = (ShareButton)findViewById(R.id. fb_share_button ); shareButton.setShareContent(content); Step...

[unity 2D] 簡單認識button(上)

圖片
button在遊戲中是常常會使用到的元件 那這次就來簡單的認識button吧! Step1.建立button 直接在Hierarchy中建立 Create- UI - button (這時候就會在Scence中看見按鈕囉) Step2.關於button的資訊 在Inspector中可以看到button的資訊 Step3.button文字 在Hierarchy的button下,會看見text 點擊後在Inspector中可以對文字部分進行調整修改 這樣就簡單認識button了吧~ 下次會介紹透過Onclick() 將button點擊後所跳出的新畫面。

[unity 2D] List資料

圖片
在製作遊戲時,常常需要將資料匯入,在這裡先以debug log的方式,將資訊呈現出來~ Step1.新增C# script 在Assets中右鍵-Create-C#script Step2.將C# script放於Main Camera 到時按下執行的時候,就能在Console的位置上看到結果囉~ Step3.打開C# script 現在要開始輸入程式碼!! 我們要將所輸入的資料以List的方式,一筆一筆分別輸出 (在這裡以兩筆資料做示範) Step3-1.建立結構定義 public   struct   contact //用結構定義聯絡人      {          public   int   n1 ; //id          public   int   n2 ; //項次          public   string   name ; //名字          public   double   w1 ; //經度          public   double   w2 ; //緯度          public   contact   (   int   _n1   , int   _n2 , string   _name   ,   double   _w1   ,   dou...

[ unity 2D ] 放入背景音

圖片
在遊戲中,除了畫面以外,聲音、音樂也是很重要的, 而放入背景音的方法,現在就來看看吧~ Step1.將mp3放入Assets中 Step2.將mp3拉近Scence中 就會看到有個聲音的符號出現在Scence中 Step3.設定mp3檔的資訊 點擊mp3檔,透過inspector觀看資訊 確認以下資訊是否打勾 Play On Awake (開始執行時馬上播放) Loop(循環) Step4.執行 按下執行鈕後,就會聽到音樂開始循環播放囉~

[unity2D] 透過鍵盤進行上下左右移動

圖片
在一開始使用unity的時候,想讓角色動起來卻又不知道該如何是好,所以在這裡以鍵盤上下左右移動的方式,透過簡易的程式碼,讓自己的角色動起來! 方法: 1.建立角色 2.增加Rigidbody 2D(剛體) 3.增加碰撞器(在此使用的是Circle Collider2D) 4.建立C#輸入程式碼執行動作 5.套用於角色上 執行結果入如下方影片 --------------------------------------------------------------------------- step1.先建立角色吧! 在Assets按著右鍵 Create-Sprites-Square(方塊) step2.將角色放入Hierarchy中 這時候角色就會出現在Scence中了喔 step3.為角色增加 Rigidbody 2D 剛體 點擊角色的Inspector,可看到角色的資訊, 並點擊下方Add Component - Physics 2D - Rigidbody 2D (基本上剛體大概意思就是指世界中的物體,含有世界上的重力、摩擦力等等各種力的運算) 所以我們將角色增加剛體後,因為重力的關係,角色就會掉下去了 step4.避免角色掉下去,所以建立一個地板 透過剛剛建立角色用的square,拉進Hierarchy中,並透過左上方調整按鈕,將方塊拉成長方形作為地板(若這時候執行,會發現角色依舊穿過地板掉下去了,所以接著要增加碰撞器!) step5.為角色、地板增加Collider 2D碰撞器 Collider碰撞器,是指控制遊戲物件碰撞範圍的元件 而Collider 2D可依自己需求選擇以下四種 1.Box Collider 2D 方形碰撞器 2.Circle Collider 2D 圓形碰撞器 3.Edge Collider 2D 邊緣碰撞器(只有一條線,在2D中可作為地面碰撞使用) 4.Polygon Collider 2D 多邊形碰撞器(加入元件會依照遊戲物件的Sprite自動形成不規則) 點擊角色的Inspector,加入碰撞器 Add Component - Physics 2D 在這邊...