1.引入android-support-v7-appcompat、android-support-v7-gridlayout、android-support-v7-mediarouter三個android-support-v7的library。
先點選File/New/other/Android/Android Project from Existing Code,再點選Browse選擇androidSDK資料夾裡的extras/android/support/v7/appcompat、gridlayout、mediarouter按確定(這邊要分三次做),然後把project to import裡的專案給勾選起來,還有下面的copy projects into workspace也要勾選起
來之後按finish就可以了。
2.更改library SDK Version。
在android-support-v7-appcompat專案資料夾上按右鍵點選propertices然後選擇androidSDK的版本這邊要選擇android4.0,API LEVEL14。
在android-support-v7-mediarouter專案資料夾上按右鍵點選propertices然後選擇androidSDK的版本這邊要選擇android4.2,API LEVEL17,之後在下面Library的地方點選add然後選擇android-support-v7-appcompat再按OK。
3.加入android support V7 Demo。
先點選File/New/other/Android/Android Sample Project,之後選擇android4.1(Min SDK 7、Target SDK 17)然後選擇Support7Demos[Android Support Library]然後再按finish加入專案。
4.為support V7 Demo加入support V7 Library。
一樣在Support7Demos的資料夾上按右鍵點選propertices,然後再Library的地方按add加入第一個步驟引入的android-support-v7-appcompat、android-support-v7-gridlayout、android-support-v7-mediarouter這三個Library就可以發佈了。
搜尋文章
2013年9月3日 星期二
2013年8月27日 星期二
AS3 Rect & java Rect 傻傻分不清~
今天在看android用canves畫圖案,有用到drawRect跟drawRoundRect這兩個方法,一個是畫矩形的另一個也是畫矩形的不過可以再多畫圓角。
這兩個方法都要帶一個Rect進去,想說Rect這東西在AS3的時候就用過很多次了,就覺得這四個值分別是帶x、y、width、height,然後就這樣帶進去了,想當然是畫出很奇怪的型狀或是根本沒圖形。在試驗很多次之後才發現原來AS3的Rect跟java的Rect是不一樣的阿~~
AS3裡如果是帶Rect(100,100,200,200)的值的話,會在x 100,y 100的地方畫一個寬200高200的矩形,不過在java裡這四個值分別是起始點與結束點,前面兩個值是起始點,後面兩個值是結束點,所以跟上面一樣帶Rect(100,100,200,200)的值的話,其實畫出來的會是在x 100,y 100的地方畫一個寬100高100得值,因為第三個值-第一個值=寬,第四個值-第二個值=高。
結案 !
這兩個方法都要帶一個Rect進去,想說Rect這東西在AS3的時候就用過很多次了,就覺得這四個值分別是帶x、y、width、height,然後就這樣帶進去了,想當然是畫出很奇怪的型狀或是根本沒圖形。在試驗很多次之後才發現原來AS3的Rect跟java的Rect是不一樣的阿~~
AS3裡如果是帶Rect(100,100,200,200)的值的話,會在x 100,y 100的地方畫一個寬200高200的矩形,不過在java裡這四個值分別是起始點與結束點,前面兩個值是起始點,後面兩個值是結束點,所以跟上面一樣帶Rect(100,100,200,200)的值的話,其實畫出來的會是在x 100,y 100的地方畫一個寬100高100得值,因為第三個值-第一個值=寬,第四個值-第二個值=高。
結案 !
2013年6月12日 星期三
android-透過webView加上userAgent
在用userAgent判斷使用者是電腦或是行動裝置觀看網頁這一篇
記錄了如何用navigator.userAgent去判斷是在行動裝置上觀看網頁還是用電腦看
但如果是要在android上判斷是在行動裝置上的瀏覽器看還是用應用程式裡面的webView看的話
就需要再webView上下一點工夫了
下面直接上code
WebVIew mWebView = new WebView(context); //先用webview的getSettings()取得webSettings再用getUserAgentString() //取得userAgent,這邊取出來的值會跟在網頁用js的navigator.userAgent取的 //值是一樣的 String userAgentStr = mWebView.getSettings().getUserAgentString(); //之後用setUserAgentString()設定新的userAgent //這邊設定新的UserAgent的時候用記得用舊的UserAgent去加入新的字串 //不然UserAgent的瀏覽器及系統訊息都會被你設定的新字串覆蓋過去 mWebView.getSettings().setUserAgentString(userAgentStr+"/ON_WEBVIEW");
之後在網頁上把UserAgent alert出來就可以看到剛剛新加入的字串了
Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; GT-P3100 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30/ON_WEBVIEW
再來就是作一樣的判斷
var userAgent = navigator.userAgent;
if(/ON_WEBVIEW/i.test(userAgent)){
//是否在webview上面看
}
android-canvas set bitmap IllegalStateException error
最近在android上試做了一個畫筆的功能
然後要能把畫的圖片儲存跟讀取
讀取的方法我是用BitmapFactory.decodeFile把檔案圖片轉成bitmap
然後再把這個bitmap畫在canvas上,但時候遇到了一個error
錯誤訊息是這樣的
java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor
股溝了一下發現也有人遇到這樣的問題
其原因是被載入的bitmap是不可被改變的,所以也不能用來畫在canvas上
如果是把bitmap帶入canvas的建構涵式的話就會出現上面的錯誤訊息
但如果是用canvas.setBitmap()的話只會出現這樣的錯誤訊息
java.lang.IllegalStateException
這一點真的想要抱怨一下android,錯誤訊息劈哩啪啦列了一大堆
唯一看到有用的訊息就是這一串然後也講得不清不楚了
但我想錯誤的原因應該都是一樣的,都是不可改變bitmap
解決的方法是把載入的bitmpa在複製一份出來用就好了~
然後要能把畫的圖片儲存跟讀取
讀取的方法我是用BitmapFactory.decodeFile把檔案圖片轉成bitmap
然後再把這個bitmap畫在canvas上,但時候遇到了一個error
錯誤訊息是這樣的
java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor
股溝了一下發現也有人遇到這樣的問題
其原因是被載入的bitmap是不可被改變的,所以也不能用來畫在canvas上
如果是把bitmap帶入canvas的建構涵式的話就會出現上面的錯誤訊息
但如果是用canvas.setBitmap()的話只會出現這樣的錯誤訊息
java.lang.IllegalStateException
這一點真的想要抱怨一下android,錯誤訊息劈哩啪啦列了一大堆
唯一看到有用的訊息就是這一串然後也講得不清不楚了
但我想錯誤的原因應該都是一樣的,都是不可改變bitmap
解決的方法是把載入的bitmpa在複製一份出來用就好了~
Canvas mCanvas ;
File bimapFile = new File("mmt\sdcard","pic.png");
Bitmap orgBitmap = BitmapFactory.decodeFile(bimapFile.getAbsolutePath());
Bitmap copyBitmap = orgBitmap.copy(Bitmap.Config.ARGB_8888, true);
//用建構帶入bitmap或是用setBitmap方法帶入都可以
mCanvas = new Canvas(copyBitmap)
//or
//mCanvas = new Canvas();
//mCanvas.setBitmap(copyBitmap)
標籤:
Android,
Android-Bitmap
2012年10月5日 星期五
android-Too large bitmap to be uploaded into a texture
今天遇到了一個問題是開啟了硬體加速後在imageView裡面塞圖片後發現畫面一片黑,
看了log他寫 Too large bitmap to be uploaded into a texture
上網查了一下原因找到這一篇文章
Too large bitmap to be uploaded into a texture
看來也有人遇到同樣的問題,裡面的回答是
When using hardware acceleration, there is a limit to the size of a texture.
When you render a bitmap, it has to be uploaded to an OpenGL texture first.
Your bitmap happens to be bigger than the maximum texture size on Xoom (2048x2048.)
You need to use a smaller bitmap or split it into several bitmaps.
所以解答就是把圖縮小到2048之內吧 ! !
看了log他寫 Too large bitmap to be uploaded into a texture
上網查了一下原因找到這一篇文章
Too large bitmap to be uploaded into a texture
看來也有人遇到同樣的問題,裡面的回答是
When using hardware acceleration, there is a limit to the size of a texture.
When you render a bitmap, it has to be uploaded to an OpenGL texture first.
Your bitmap happens to be bigger than the maximum texture size on Xoom (2048x2048.)
You need to use a smaller bitmap or split it into several bitmaps.
所以解答就是把圖縮小到2048之內吧 ! !
標籤:
Android,
Android-Bitmap
訂閱:
文章 (Atom)