取得Youtube影片預覽圖
120px * 90px(4:3)
http://img.youtube.com/vi/<video-id>/default.jpg
320px * 180px(16:9,不會有黑邊)
http://img.youtube.com/vi/<video-id>/mqdefault.jpg
480px * 360px(4:3)
http://img.youtube.com/vi/<video-id>/hqdefault.jpg
640px * 480px(4:3)
http://img.youtube.com/vi/<video-id>/sddefault.jpg
1280px * 720px、1920px * 1080px(16:9,不會有黑邊)
http://img.youtube.com/vi/<video-id>/maxresdefault.jpg
※ref1:http://www.zoearthmoon.net/blog/program/item/404-youtube-thumbnail.html
※ref2:http://www.zhihu.com/question/22543683/answer/21721819
work note
2015年8月28日 星期五
2015年2月25日 星期三
[Android] 整理筆記:有關Android裝置的定位
以使用者的角度來說明,會接觸到的定位總共有三種方式
我直接整理成表格,幫助大家快速理解
GPS及Wi-Fi定位並沒有哪個較好, 而是在不同的狀況要使用不同的種類
這兩種也能夠相輔相成搭配著使用
依照不同情境,可在在Android裝置中設定,「設定」-> 「定位」
1. 高精確度:使用GPS、Wi-Fi和行動網路判斷位置
>> 需要精確定位可用此,例如導航
2. 節約耗電量:使用Wi-Fi和行動網路判斷位置
>> 較GPS省電,但Wi-Fi要一直開啟(註1), 平常在都市生活可用此就好
3. 僅限裝置:使用GPS判斷您的位置
>> 不需網路即可定位,但耗電,到山上野外或海邊想看地圖的時候用此
================================================================================
*註1:
Android_4.3增加了「為了使定位精準,即使Wi- Fi功能關閉, Google和其他應用程式可能會掃描附近的Wi-Fi網路」
意思是
在以前要用Wi-Fi定位時,必須要一直將Wi-Fi開啟, 但現在關閉Wi-Fi後,仍然可以使用Wi-Fi定位
換句話說,即使將Wi-Fi關閉,不代表真正將Wi-Fi關閉, Wi-Fi仍會在背景運作輔助定位
若要真正將Wi-Fi關閉,則到「Wi-Fi」->「進階」-> 「一律執行掃描」,取消勾選
※整理筆記於
2015年2月22日 星期日
[Android][AndroidStudio] 修改自動排版(Reformat code)的規則
滿久沒有更新了
因為工作忙案子趕,即使覺得有不錯的東西或是需要記憶的東西
但沒有時間紀錄在blog
最近改到Android Studio開發,簡直不只是崩潰可以形容
雖然可以將快捷鍵改為原本Eclipse使用的
不過既然都已經換了,所以快捷鍵還是重新背Android Studi版的吧!
--
在Android Studio中要自動排版的快捷鍵是
若要修改排版的規則則在
Preference->Code Style
附圖為,我修改了Java的空行部分
原有最大行數為2行,因為習慣的原因改為1行
因為工作忙案子趕,即使覺得有不錯的東西或是需要記憶的東西
但沒有時間紀錄在blog
最近改到Android Studio開發,簡直不只是崩潰可以形容
雖然可以將快捷鍵改為原本Eclipse使用的
不過既然都已經換了,所以快捷鍵還是重新背Android Studi版的吧!
--
在Android Studio中要自動排版的快捷鍵是
- (Win) CTRL + ALT + L
- (Mac) OPTION + CMD + L
若要修改排版的規則則在
Preference->Code Style
附圖為,我修改了Java的空行部分
原有最大行數為2行,因為習慣的原因改為1行
2014年8月17日 星期日
[Android] 在調整ImageView寬高時保持原比例
今天遇到一個需求
圖片width需與parent相同,height要以等比例放大
於是先將ImageView設定成
圖片width需與parent相同,height要以等比例放大
於是先將ImageView設定成
<ImageView
android:id="@+id/picture"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drwable/pic" >
</ImageView>
但發現他設的height是原圖的height
在width拉到與parent相同時,height並不會跟著改變
因此要在程式中設定
ImageView img = (ImageView) findViewById(R.id.picture);
img.setAdjustViewBounds(true);
這樣height才會動態的調整成,已拉成與parent相同width比例對應的height
2014年8月11日 星期一
[Android] 從keystore取得hash key
用Facebook等SDK
有時需要上傳自己的hash key作為debug用
在Eclispe->Preference->Android->Build可以看到自己的default debug keystore路徑
可使用keytool及openssl從debug keystore取得hash key
$ keytool -exportcert -alias androiddebugkey -keystore [debug.keystore] | openssl sha1 -binary | openssl base64
2014年6月20日 星期五
[Android] 開啟FB app的網址
用FB app開啟特定分頁的網址為
refs:http://im88.tw/?p=18981
--
150527_note:
[Android] page顯示的包含粉絲團簡要說明、按贊數、置頂文、普通文章,profile顯示的僅有普通文章。
[iOS] page.不吃此網址,profile顯示的包含粉絲團簡要說明、按贊數、置頂文
fb://profile/[id]
從普通網頁可尋找到FB專頁的id
若已經改成特殊帳號
可經由此網頁搜尋id
https://graph.facebook.com/[帳號]
在網頁中可尋找到此FB分頁的idrefs:http://im88.tw/?p=18981
--
150527_note:
fb://page/[id]
fb://profile/[id]
[Android] page顯示的包含粉絲團簡要說明、按贊數、置頂文、普通文章,profile顯示的僅有普通文章。
[iOS] page.不吃此網址,profile顯示的包含粉絲團簡要說明、按贊數、置頂文
2014年1月21日 星期二
[Shell] 執行script方式差異 (source, sh, 點, 點斜線)
父程序中執行
-> source及點(.)
子程序中執行
-> 點斜線(./)及sh
在子程序執行的各項變數及動作並不會回傳至父程序
因此像android build code前需initial環境設置
就必須執行
source build/envsetup.sh
或
. build/envsetup.sh
ref:http://linux.vbird.org/linux_basic/0340bashshell-scripts.php (script 的執行方式差異)
-> source及點(.)
子程序中執行
-> 點斜線(./)及sh
在子程序執行的各項變數及動作並不會回傳至父程序
因此像android build code前需initial環境設置
就必須執行
source build/envsetup.sh
或
. build/envsetup.sh
ref:http://linux.vbird.org/linux_basic/0340bashshell-scripts.php (script 的執行方式差異)
2013年11月20日 星期三
[C#] 將現有節點從一個文件複製到另一個文件;ImportNode
在C#中,建立xml要先建立XmlDocument,在裡面再建立XmlElement
若想要將其中的節點,複製到其他XmlDocument可不能直接放
需使用ImportNode複製到其他的XmlDocument
test_201311201933485572.xml
test.copy_201311201933485572.xml
若想要將其中的節點,複製到其他XmlDocument可不能直接放
需使用ImportNode複製到其他的XmlDocument
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml; namespace qntest1 { static class Program { ////// 應用程式的主要進入點。 /// [STAThread] static void Main() { //Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new Form1()); xml(); } static void xml() { //建立時間放在檔名 DateTime dt = DateTime.Now; string time = string.Format("{0:yyyyMMddHHmmssffff}", dt); //新增第一個xml檔 XmlDocument doc = new XmlDocument(); XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null); doc.AppendChild(xmlDeclaration); XmlElement rootElement = doc.CreateElement("Company1"); doc.AppendChild(rootElement); //新增資料 XmlElement childElement = doc.CreateElement("Employee"); XmlAttribute childAtrbt = doc.CreateAttribute("Department"); childAtrbt.Value = "研發部"; childElement.Attributes.Append(childAtrbt); rootElement.AppendChild(childElement); doc.Save(@"C:\Users\user\Desktop\test\" + "test_" + time + ".xml"); ////////////////////////////////////////////////////////////////////////////////////// //新增第二個xml檔 XmlDocument doc2 = new XmlDocument(); XmlDeclaration xmlDeclaration2 = doc2.CreateXmlDeclaration("1.0", "UTF-8", null); doc2.AppendChild(xmlDeclaration2); XmlElement rootElement2 = doc2.CreateElement("Company2"); doc2.AppendChild(rootElement2); //將第一個xml檔最後的節點複製到第二個xml檔 XmlNode newNode = doc2.ImportNode(doc.DocumentElement.LastChild, true); doc2.DocumentElement.AppendChild(newNode); doc2.Save(@"C:\Users\user\Desktop\test\" + "test.copy_" + time + ".xml"); } } }
test_201311201933485572.xml
-
test.copy_201311201933485572.xml
-
[git][cygwin] git config
Git的設定有三種層級,分別是
1. /etc/gitconfig:系統,適用所有使用者及所有repositories;git config --system [command]
2. ~/.gitconfig:使用者,適用於該使用者;git config --global [command]
3. repositories/.git/config:repositories,適用於該repositories;git config [command]
一般用第二個,給自己的帳戶使用
/home/user/.gitonfig
[user] name, email:name為使用git commit會儲存的name及email
[color] 如果有需要可以填
[core] editor:編輯器若沒有指定會使用系統預設的,通常是vi或vim
[core] autocrlf:在不同作業系統(ex: Windows, Linux)換行字元會不同,若設定true,它會自動切換換行字元(crlf, lf)。
在Windows我使用cygwin,作為使用git的工具,為了避免換行字元會因為不同作業系統而改變,因此我設為false,依照codebase原有的換行字元
※ ref1:http://git-scm.com/book/en/Getting-Started-First-Time-Git-Setup
※ ref2:http://huan-lin.blogspot.com/2011/05/git-coreautocrlf.html
1. /etc/gitconfig:系統,適用所有使用者及所有repositories;git config --system [command]
2. ~/.gitconfig:使用者,適用於該使用者;git config --global [command]
3. repositories/.git/config:repositories,適用於該repositories;git config [command]
一般用第二個,給自己的帳戶使用
/home/user/.gitonfig
[user] name = user email = user@email.com [color] diff = auto status = auto branch = auto ui = auto [core] editor = nano autocrlf = false
[user] name, email:name為使用git commit會儲存的name及email
[color] 如果有需要可以填
[core] editor:編輯器若沒有指定會使用系統預設的,通常是vi或vim
[core] autocrlf:在不同作業系統(ex: Windows, Linux)換行字元會不同,若設定true,它會自動切換換行字元(crlf, lf)。
在Windows我使用cygwin,作為使用git的工具,為了避免換行字元會因為不同作業系統而改變,因此我設為false,依照codebase原有的換行字元
※ ref1:http://git-scm.com/book/en/Getting-Started-First-Time-Git-Setup
※ ref2:http://huan-lin.blogspot.com/2011/05/git-coreautocrlf.html
[Linux] 在目錄之下搜尋文件檔名及文件內關鍵字
在目錄之下,搜尋文件檔名
$ find -iname "[file_name]"
EX: $ fine iname "*.txt"
在目錄之下,搜尋文件關鍵字
$ grep -rin "[keyword]" .
EX: $ grep -rin "HelloWord()" .
$ find -iname "[file_name]"
EX: $ fine iname "*.txt"
在目錄之下,搜尋文件關鍵字
$ grep -rin "[keyword]" .
EX: $ grep -rin "HelloWord()" .
訂閱:
文章 (Atom)