網頁

2012年7月30日 星期一

iOS開發筆記 - UIFont的設定

先來個簡單的Example,在設定Lable時常會用到

UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(110, 35, 180, 30)] autorelease];
label.text = @"測試";
label.font = [UIFont fontWithName:@"Arial-BoldMT" size:20]; //設定粗字體
label.textColor = [UtilFuncs transferHexColorCode:@"#50860e"];
label.backgroundColor = [UIColor clearColor];


在iOS中,沒有設定粗體這東西,完全要靠字體本身,所以上述Example才會用Arial-BoldMT,不過我想這才是正常的做法吧。



參考網址:
https://discussions.apple.com/thread/1533499?start=0&tstart=0

2012年7月28日 星期六

Android開發筆記 - Google AdMob的官方文件及jar file網址

做個記錄

https://developers.google.com/mobile-ads-sdk/docs/android/fundamentals?hl=zh-TW#requirements

Android開發筆記 - 若是有用到project是library,千萬別隨便升級,記得備份

上一篇:Android開發筆記 - Could not find class 'com.google.ads.AdView'有談到class not found的問題是ADT升級的問題,但我的專案是好幾個project的dependency及admob的jar file集合,雖然知道在libs上加入jar file,直接在每個project的compiler好的jar file,但不知為何的,反而告知找不到本身project的class。


經過了幾乎是一整個星期的反覆查證及測試,最後我只能回復到我以往的版本,拿出以前的備分,重新來過,Admob記得回到4.1.1,因為4.3.1需要3.2的支援,3.2需要升級到至少1.6,沒想到花了這麼長的時間,沒解法,也許在哪天就想出來了吧


[更新事項]
備份目標
1. eclipse本身的folder,主要是plugin要備份
2. android sdk備份
3. workspace的code,記得.meta這個folder刪掉


參考網站:
http://wazai.net/2199/android-sdk-r17-noclassdeffounderror
http://stackoverflow.com/questions/10026936/eclipse-adt-17-and-the-libs-folder
http://hi.baidu.com/545057627/item/eec9a6cd5e142003b77a24fd
http://www.imobilebbs.com/wordpress/?p=2947
http://shareandopen.tumblr.com/post/25650390953/android-run-and-get-java-lang-verifyerror
http://www.oschina.net/question/40576_45439



2012年7月23日 星期一

Android開發筆記 - Could not find class 'com.google.ads.AdView'

這陣子升級了android的sdk後,admob就開始有問題了,出現了這個字眼

Could not find class 'com.google.ads.AdView'

真的是令人煩悶的東西,每每更新了sdk,就得找找有沒有什麼trouble,不過唸歸唸,還是得解決。後來找到了,在Android tool r17以後,要在android project上加入libs這個folder(這邊有個要注意的,記得將它變成source folder的屬性),然後將你的admob的jar實際copy過去,就可以順利讀到這個class了

參考網頁:
http://stackoverflow.com/questions/10523703/error-inflating-class-com-google-ads-adview

2012年7月15日 星期日

看文章的人數變多

看著看文章的人數變多,真的還蠻有趣的,會讓人寫得更有勁,已經在思考是否要寫仔細點,哈哈哈~~~

ps. adSense還是過不了~ 嘖

2012年7月14日 星期六

設定php.ini的時區

一直想試試新的tracker,找到了這個mantis,但安裝完後,卻遇到底下這個warning



這時才發現我的php一直沒設定好時區,只好在php.ini下設定


這樣就再也沒有warning出現囉~~

參考網址:
http://jax-work-archive.blogspot.tw/2009/07/php-datetimezone.html

iOS開發筆記 ﹣UIWebView load jQuery.js

之前有一篇iOS開發筆記 - 將jquery放入是單純將jquery.js放入app中,並在html中去載入,但有時頁面是動態產生的,無法在當下載入,而且載入後,要馬上再放入自己寫好的js檔來執行,WebView有提供一個WebDelegate,其中有一個function:webViewDidFinishLoad,可以在頁面載完後執行,就在這function中去讀入jquery.js的內容,function內容如下:


- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *filePath = 
      [[NSBundle mainBundle] pathForResource:@"jquery-1.7.2.min" 
            ofType:@"js" inDirectory:@""];
    NSData *fileData = [NSData dataWithContentsOfFile:filePath];
    NSString *jsString = 
      [[NSMutableString alloc] initWithData:fileData 
            encoding:NSUTF8StringEncoding];
    
    [webView stringByEvaluatingJavaScriptFromString:jsString];
}


再來再自己寫一個function跟一個UIButton綁定,function如下:

- (IBAction)runJavascript:(id)sender
{
    NSString *workjs = [[NSBundle mainBundle] pathForResource:@"work" ofType:@"js" inDirectory:@""];
    NSData *workjsData = [NSData dataWithContentsOfFile:workjs];
    NSString *js = [[NSMutableString alloc] initWithData:workjsData encoding:NSUTF8StringEncoding];
    
    [self stringByEvaluatingJavaScriptFromString:js];
}


work.js的內容只是很簡單的hello

alert('hello!!');


這樣按下按鈕就會秀出alert訊息了。

參考網頁
http://www.altinkonline.nl/tutorials/xcode/uiwebview/load-jquery-in-uiwebview/

2012年7月13日 星期五

CentOS筆記-載入DVD

這年頭很少人在用光碟機了吧,尤其是Server,大多都用網路傳輸,但我還是遇到了,第一步先到/dev底下看看有哪些設備跟光碟機有關,我的如下:
dvd
dvd-sr0

ps. 查看剛放上去的裝置如下指令
fdisk -l

所以在/mnt開了個media目錄,再用底下的指令將它mount上,就可以用了
mount -t iso9660 /dev/dvd-sr0 /mnt/media

2012年7月11日 星期三

申請不到AdSense...怪

這個blog一直申請不到ad sense,想不通原因是什麼,仔細查查分析資料,也許是因為內容太雜或讓大家停留時間短,不過,這blog本身只是為了做筆記而設立的咧,想想,也許是這樣的初衷造成的吧。

2012年7月10日 星期二

彈出的新視窗執行原視窗的javascript

繼上個"點擊開新視窗要求原視窗reload"文章,再來是執行原視窗的javascript,其實很簡單,只要改成如下:

window.opener.function name();

window.opener是原視窗,function name即是你在原視窗定義且要呼叫的原程式。
例如:
function test() {
    alert('test');
}

到時用

window.opener.test();

就會出現test的alert訊息。就這樣,說破了沒半點價值

2012年7月9日 星期一

點擊開新視窗要求原視窗reload

最近有個案子,希望點擊link後,開新視窗,記錄時間,當新視窗關掉時,能回傳server時間,並要求原視窗網頁重新載入,查了半天,發現了這個


window.opener.location.reload();


只要在ajax的function中加入這個即可,不過我的案子是只能在IE中執行,所以只測過IE,其他的瀏覽器我就沒測試了

參考網頁
http://www.programmer-club.com/ShowSameTitleN/javascript/5069.html

2012年7月8日 星期日

iOS開發筆記 ﹣UIButton上title蓋在image上

這陣子在撰寫個程式,希望按鈕上有字也有底圖,本來以為很簡單,但卻發現,要嘛就有字,要嘛就只有圖,無法使用setImage,改用setBackgroundImage,但我要的字在底端不是中間,而且會被拉長放大等問題,查到最後只好使用UIEdgeInsetsMake,大致的寫法如下

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn addTarget:self action:@selector(xxxx:) forControlEvents:UIControlEventTouchUpInside];
btn.frame = CGRectMake(20, 20, 96, 96); //圖的大小在90x90左右
[btn setTitle:@"圖示" forState:UIControlStateNormal];
UIImage *btnImg = [UIImage imageNamed:@"icon.png"];

[btn setImage:btnImg forState:UIControlStateNormal];

//title從中間往下65px,靠左為btnImg的寬度,負數為放大
[btn setTitleEdgeInsets:UIEdgeInsetsMake(65, -btnImg.size.width, 0, 0)];
//image從中間往上20px,靠右為titleLabel的寬度
[btn setImageEdgeInsets:UIEdgeInsetsMake(-20, 0, 0, -btn.titleLabel.bounds.size.width)];


要特別注意的是,設定title及image的順序,若反過來,記得在寬高的設定上也要反過來,兩者是互相影响的。


參考網址:
http://blog.sina.com.cn/s/blog_6de1899201013bnv.html

2012年7月6日 星期五

iOS開發筆記 ﹣Html Hex Code轉換成RGB

最近有個案子要將html的hex code餵進手機中,然後手機原生的layout button要能直接更動顏色,但手機原生用的是RGB,html是這樣的code: #ccff00,只好自己動手寫出個轉換的function囉

整個function內容如下,先使用NSScanner來轉換成int,不過這邊倒是遇到個問題,提供的function接受的string是要0x開頭,所以得自行拿掉"#"號,並加上"0x",這樣就可以使用了。

/*
 * 轉換html色碼成rgb
 */
+(UIColor*) transferHexColorCode:(NSString*)colorCode
{
//    NSLog(@"color: %@",colorCode);
    /*
     *  無法直接使用NSScanner *scanner2 = [NSScanner scannerWithString:colorCode];
     *  要先轉換成0xFF0000這樣的型式
     */
    NSString *color = [NSString stringWithFormat:@"0x%@",[colorCode substringFromIndex:1]];
    NSScanner *scanner2 = [NSScanner scannerWithString:color];
    [scanner2 setCharactersToBeSkipped:[NSCharacterSet symbolCharacterSet]];
    unsigned int baseColor;
    [scanner2 scanHexInt:&baseColor];
//    NSLog(@"scanner2 %@",scanner2);
//    NSLog(@"int: %i",baseColor);
    CGFloat red   = ((baseColor & 0xFF0000) >> 16) / 255.0f;
    CGFloat green = ((baseColor & 0x00FF00) >>  8) / 255.0f;
    CGFloat blue  =  (baseColor & 0x0000FF) / 255.0f;
    
//    NSLog(@"red: %f, green: %f, blue: %f",red,green,blue);
    return [UIColor colorWithRed:red green:green blue:blue alpha:1.0f];
}

參考網址:
http://stackoverflow.com/questions/3010216/how-can-i-convert-rgb-hex-string-into-uicolor-in-objective-c
http://stackoverflow.com/questions/7360958/objective-c-html-rgb-color-not-correct-in-uicolor

2012年7月2日 星期一

CentOS筆記-修正系統時間及自動修正

修正時間,其實用date這個指令即可,

格式:date MMDDhhmmYYYY
例如:date 070505112012 -> 2012年7月15日5點11分

但這次我想要的是系統自動update及修正,所以需要ntp server,在cent os上很容易做
1. yum install htp2. chkconfig ntpd on
3. ntpdate pool.ntp.org <-- 手動updater
4. /etc/init.d/ntpd start <-- 將server啟動


參考網址:
http://www.cyberciti.biz/faq/howto-install-ntp-to-synchronize-server-clock/