今天跟朋友討論一下工作上遇到的問題,朋友雖然不是科技業,只淡淡的回我
「也許你把他想的比較難了一點,你應該是快要弄好了,
有時候往回看一下,就會找到了」
2015年9月28日 星期一
2015年9月27日 星期日
[Android] 解決view.getWidth()為0問題
有時候在OnCreate()時,取到的View.getWidth()通常會是0 ,
查詢網路上有一個解法。
不過這個方法有一個小缺點,當VIEW有變化(重繪或是物件有移動)也會引發。
所以可以下一個布林值來判斷是否己取過。
查詢網路上有一個解法。
MyView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // aviod when ui change run this code if (!init) { this.width=MyView.getWidth(); init=true; } } });
不過這個方法有一個小缺點,當VIEW有變化(重繪或是物件有移動)也會引發。
所以可以下一個布林值來判斷是否己取過。
「Android」Button點下後的微縮小效果
在res/anim 裡面新增一個click_anim.xml檔案
在Button的click事件裡這樣寫
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <alpha android:duration="300" android:fromAlpha="1.0" android:toAlpha="0.5" > </alpha> <scale android:duration="50" android:fromXScale="1" android:fromYScale="1" android:pivotX="50%" android:pivotY="50%" android:toXScale="0.9" android:toYScale="0.9" > </scale> </set>
在Button的click事件裡這樣寫
btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { v.startAnimation(AnimationUtils.loadAnimation(Select_Lamp.this, R.anim.click_anim)); } });
2015年9月26日 星期六
2015年9月23日 星期三
「Android」比較一下Runnable呼叫方式
用迴圈執行大量的畫面更新
結果會變成下面這樣,迴圈叫你起床去尿尿後,就不管你了,然候
變成什麼都沒有顯示出來~直到Android把工作都消化完了。
會看到數字狂飆,其實它們的差異在於,一個尿完叫下一個起來尿尿,這樣才不會大家都去搶廁所
package com.example.flowercatswets.test; import android.os.Handler; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; public class MainActivity extends ActionBarActivity { TextView tv; Handler mHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv=(TextView) findViewById(R.id.text); mHandler=new Handler(); } @Override protected void onResume() { demoForLoop(); demoForLoop(); super.onResume(); } int i; private void demoForLoop() { for(i=0;i<1000000;i++) { mHandler.post(new Runnable() { @Override public void run() { tv.setText(String.valueOf(i)); } }); } } }
結果會變成下面這樣,迴圈叫你起床去尿尿後,就不管你了,然候
變成什麼都沒有顯示出來~直到Android把工作都消化完了。
換成用遞迴的方式呢
public class MainActivity extends ActionBarActivity { TextView tv; Handler mHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv=(TextView) findViewById(R.id.text); mHandler=new Handler(); } @Override protected void onResume() { demorecursive(); super.onResume(); } int i; /*private void demoForLoop() { for(i=0;i<1000000;i++) { mHandler.post(new Runnable() { @Override public void run() { tv.setText(String.valueOf(i)); } }); } }*/ private void demorecursive() { i=0; Runnable mRunable=new Runnable() { @Override public void run() { tv.setText(String.valueOf(i++)); mHandler.postDelayed(this, 1); if (i==1000001) { mHandler.removeCallbacks(this); } } }; mHandler.postDelayed(mRunable, 1); } }
會看到數字狂飆,其實它們的差異在於,一個尿完叫下一個起來尿尿,這樣才不會大家都去搶廁所
2015年9月22日 星期二
「智語」智語N
宗教的目的,乃是要導引世人,步上和諧安祥的康莊大道。
所以各宗教不應該互相誹謗,讓沒信仰者,更加歧視宗教 。
寫扣的目的,乃是要幫助世人,步上簡單正確的流程軌道。
所以各碼農更應該努力上進,讓不寫扣者,慢慢想要寫扣。
「名詞定義」USB-HID
HID 是Human Interface Device的縮寫 ,由其名稱可以了解HID設備
是直接與人交互的設備,例如鍵盤、鼠標與遊戲桿等。 不過HID設備並
不一定要有人機接口,只要符合HID類別規範的設備都是HID設備。
交換的數據存儲在稱為報表(report)的結構內,設備的硬體必須支持HID報表
交換的數據存儲在稱為報表(report)的結構內,設備的硬體必須支持HID報表
的格式。 主機在控制與中斷傳輸中傳送與要求報表,來傳送與接收數據。
報表的格式非常有彈性,可以處理任何類別的數據。設備除了HID接口之外,
它可能同時還包含有其他的USB接口。 例如影像顯示設備可能使用HID接口來
做亮度,對比,與更新率的軟件控制,而使用傳統的影像接口來傳送要顯示的數據。
USB擴音器可以使用實時傳輸來播放語音,同時使用HID接口來控制音量,震盪,與低音等。
HID接口通常比傳統的控制接口來得便宜。
資料來源:
2015年9月21日 星期一
[Android CountDownTimer]
如果懶得自己寫倒數計時器,Android提供了一個很簡單的東西--
執行畫面
執行完畢
參考來源:
http://developer.android.com/reference/android/os/CountDownTimer.html
CountDownTimer
public class MainActivity extends AppCompatActivity { private TextView mTextField; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextField=(TextView)findViewById(R.id.text); MyCountDown(10000,1000); } private void MyCountDown(long total , long trick) { new CountDownTimer(total, trick) { public void onTick(long millisUntilFinished) { mTextField.setText("seconds remaining: "
+ millisUntilFinished / 1000); } public void onFinish() { mTextField.setText("done!"); } }.start(); } }
private void MyCountDown(long total , long trick)
有二個參數,第一個total則是總共要倒數幾秒,例如倒數10秒則填入10000 (ms)。
第二個參數則是每幾秒要"作動",例如我想讓使用者每看到10~9~8~7...1, 就填入1000(ms)
如果想要每3秒顯示一次,就填入3000 。
執行畫面
執行完畢
參考來源:
http://developer.android.com/reference/android/os/CountDownTimer.html
2015年9月19日 星期六
「分享」心率不整的症狀
心率不整的症狀:
心悸、胸悶、胸痛、呼吸短促、頭暈、嚴重時全身無力、
倦怠、心臟衰竭、呼吸困難、低血壓、昏厥、意識改變。
攝取足夠的鎂和鉀:
攝取足夠的鎂與鉀,有助於平衡鈣的作用以減緩心跳及心肌收縮,
有助於改善心博過速發作。
(1)含鎂的食物: 豆類、核果類、麥麩。
(2)含鉀食物: 香蕉、芭藥、葡萄乾、蘋果、莧菜、海帶、牛肉、鱈魚。
當心博過速發作時,可深吸一口氣並向腹部施壓,有如排便時的用力,
或按摩項動脈竇,以刺激副交感神經,使心跳減慢。
資料來源:
http://gong5887903.pixnet.net/blog/post/27370182-%E8%AA%8D%E8%AD%98%E5%BF%83%E5%BE%8B%E4%B8%8D%E6%95%B4%E7%97%87%E7%8B%80%E3%80%81%E6%B2%BB%E7%99%82%E5%8F%8A%E5%B1%85%E5%AE%B6%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A0%85!
心悸、胸悶、胸痛、呼吸短促、頭暈、嚴重時全身無力、
倦怠、心臟衰竭、呼吸困難、低血壓、昏厥、意識改變。
攝取足夠的鎂和鉀:
攝取足夠的鎂與鉀,有助於平衡鈣的作用以減緩心跳及心肌收縮,
有助於改善心博過速發作。
(1)含鎂的食物: 豆類、核果類、麥麩。
(2)含鉀食物: 香蕉、芭藥、葡萄乾、蘋果、莧菜、海帶、牛肉、鱈魚。
當心博過速發作時,可深吸一口氣並向腹部施壓,有如排便時的用力,
或按摩項動脈竇,以刺激副交感神經,使心跳減慢。
資料來源:
http://gong5887903.pixnet.net/blog/post/27370182-%E8%AA%8D%E8%AD%98%E5%BF%83%E5%BE%8B%E4%B8%8D%E6%95%B4%E7%97%87%E7%8B%80%E3%80%81%E6%B2%BB%E7%99%82%E5%8F%8A%E5%B1%85%E5%AE%B6%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A0%85!
2015年9月18日 星期五
[智語」如果你只關注成功,你就注定失敗
成功」本身就沒有固定的定義。不同人有不同的價值觀,甚至是同一個人,在不同的人生階段,也會有不同的成功定義。所以追求成為一個「成功人士」本身就是一個沒有固定跑道、沒有終點的賽跑。更可怕的是,當你陷入追求成功的輪迴,你就會不自覺的比較你跟其他人的成就,但不管是物質上的享受,社會的地位,或是金錢的收入等等,永遠都會有人比你更好,人外有人,比較永遠不會讓你快樂。
在追求成功的遊戲裡,我們註定是輸家,因為我們心理永遠得不到真正的快樂與踏實。
「把專注放在你要解決的問題上,你永遠有一條可以前進的道路,
你會意識到,其實還有很多事情等著你去完成。」
2015年9月13日 星期日
[智語] 三世業報一世了
故事是說北宋年間,包拯為相時,發生在民間的一樁逸事。
有一個村莊住著一個十來歲、腿患殘疾、父母雙亡的孩子,生活十分困苦,甚至靠鄉鄰施捨或乞討活命。這個村子的前面有一條河,往來村民和路人需涉水而過,特別是上了年紀的老人十分不便,每當河床漲水時更是無法通行,但年復一年,誰也沒想改變它。人們能夠看到的就是這個孩子天天撿石頭,堆在河邊。人問其故,孩子說要修一座石橋,為鄉鄰行走方便。眾人不以為然,認為孩子在說瘋話,大多哈哈一笑置之。可是日積月累,年復一年,石頭也堆成了座小山。
鄉鄰開始改變認識,並為這個孩子的精神所感動,也投入到了撿石、採石、修橋的行動中。
鄉鄰請來了工匠,開始建造石橋,而這個殘疾孩子全身心投入其中。橋尚未建成,這孩子卻在一次鑿石頭中崩瞎了雙眼。人們痛惜、怨恨,怪老天不公!這麼可憐的一個孩子,一心為大家,卻招來這樣的報應。可是這個孩子毫無怨言,每天摸索著在修橋的現場上幹活著。在大家齊心合力下橋終於修成了,眾人歡呼喜慶之餘,無不將憐惜、讚嘆的目光聚向那個孤苦伶仃原本就一條腿殘疾,現在又瞎了雙眼的孩子。
孩子雖然甚麼也看不到,但臉上露出了平生以來最歡樂的笑容。
一場不期而至的大雨,似乎要為這座石橋洗去浮塵,壯壯行色。可是一聲震耳欲聾的巨雷過後,眾人發現孩子已被巨雷擊中,倒地身亡了。
眾人驚呆了,隨後壓抑不住的情感噴瀉而出,嘆息孩子命苦,指責蒼天不公…
恰巧民間稱之為青天大老爺的包拯包相爺公幹路過此地,百姓紛紛攔住官轎為孩子鳴不平討公道。
質問相爺:好人為何不得好報?今後好人何以做得?食人間煙火的包相爺被村民情緒所帶動,
當場揮毫疾書,寫下了「寧行惡,勿行善」六個字後拂袖而去。
回到京城,老包將公幹之事連同路上見聞奏明皇上,卻隱去了自己題字一事。
因為儘管心中為那孩子行善事得惡報之事十二分不解,但三思之後還是為題那樣六個字覺得不妥。
沒想到皇上退朝後非要拉他到後宮說些私房話。
原來前些天,皇上新添龍子,十分招人喜愛,可就是孩子整天啼哭,特意讓老包去看看。
老包見那孩子肌膚如雪,嫩白的小手上有一行字。
近前一看,正是自己寫的那六字「寧行惡,勿行善」。臉一下子紅到了脖子根,趕忙伸手向字擦去。
說來奇怪,字瞬間蹤跡全無。皇上見皇子手上的胎記被老包抹去(別人看那行字只是一個胎記),唯恐抹去了福根,不依不饒的斥責包拯。
包拯連忙跪下,口稱罪臣該死,將題字一事的來龍去脈說了一遍。
皇上甚覺蹊蹺,命老包用陰陽枕到地府一探究竟。
老包拯上陰陽枕到地府一遊,真相盡顯。
原來那孩子前世做惡多端,罪業甚大,償還那一世罪惡需三世惡報才能還清。
神原來安排,第一世以殘疾之身孤苦伶仃;
第二世以雙眼瞎了卻殘生;第三世遭雷擊暴屍荒野。那孩子第一世轉生窮困殘疾,但痛改前非,只想為別人做好事。
於是神就讓他一世還兩世的業,讓他崩瞎了雙眼。
可孩子不怨天尤人,只是默默的為別人做好事。
神就把他第三世的業力也拿過來一世還,所以雷擊斃命。閻王爺問包拯,三世惡業一世還,你說是好還是不好?一世還了三世業,因為他專行善事,心裏只是想到別人,毫不考慮自己,
某些方面已達到「不修道已在道中?的境界,積德甚多,故而死後立即轉生為當今太子,享受天子福份。
這個民間流傳的小故事,作為一個修煉人來看,給我們的啟示良多。世間法與佛法是顛倒的。世俗所思所求都是享受、舒適、如何過好日子。為此斤斤計較,損人利己,勾心鬥角,甚至犯下傷天害理的罪惡。而對於修煉人,吃苦、磨難、還業則是大好事。只有捨棄才能得到。世間人看事物只能看到一個點,一條線,引申下去也只能是一個面,看到的全是假相、表相。
也由於他們看待事情只看結果,成敗則完全以世俗的認知做定論;而不同境界的修煉者,則能在定中看到真相。
佛法之所以可貴,是從成功真實的「因」上來談的,但它並非不講求「果」,正因為講果,所以為了正確的果,必須先找到正確的因,然後在正確的「因」上面下工夫,如果這個步驟做對了,好的結果一定出現。
在做的過程中,眼前有時會出現一些相對的好效果,但這個好效果,對我們而言應該是一種鼓勵,不要被它迷失。
然而世間就看不清這一點,所以我們稱這個世間叫「顛倒」。
所謂「菩薩畏因,眾生怕果」。
觀世音菩薩在「心經」裡面教我們要「遠離顛倒夢想」,我想就是這個道理吧!
永遠不要放棄自己,永遠不要放棄別人。在平凡中看到神聖。
祈求人人更加智慧,洞澈一切緣起真相。
祈求人人更加慈悲,包容寬恕別人,並努力去利益眾生。
資料來源:
2015年9月10日 星期四
[Java] 好題目3
有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位元數?
並輸出各種組合?
程式碼如下
執行結果
題目來源:
http://stenlyho.blogspot.tw/2007/04/c100-1-10.html
並輸出各種組合?
程式碼如下
int i,j,k; int count=0; System.out.print("\n"); for (i=1;i<5;i++) { for(j=1;j<5;j++) { for (k=1;k<5;k++) { if (i!=k && i!=j && j!=k) { System.out.printf("%d,%d,%d\n",i,j,k); count++; } } } } System.out.println("total:" + count);
執行結果
2,3,4
2,4,1
2,4,3
3,1,2
3,1,4
3,2,1
3,2,4
3,4,1
3,4,2
4,1,2
4,1,3
4,2,1
4,2,3
4,3,1
4,3,2
total:24
題目來源:
http://stenlyho.blogspot.tw/2007/04/c100-1-10.html
[Mac] Mac pro看DVD方法
[Android] Android 鍵盤推擠layout
我有一個layout XML如下
執行畫面如下
當我點擊EditText要輸入文字時,鍵盤會把layout推上去
如果今天你不想要layout被推上去,你可以修改Androidmanifeest ,
在activity的地方加上一行android:windowSoftInputMode="adjustNothing"
but自己就要去做滾輪或其他的方式來讓view可以滑動顯示。
執行結果
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"> <TextView
android:text="@string/hello_world"
android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:id="@+id/text" android:textSize="32sp" /> <EditText
android:layout_width="200dp" android:layout_height="wrap_content" android:layout_below="@id/text" android:layout_marginTop="30dp" android:textSize="32sp" android:layout_centerInParent="true" /> </RelativeLayout>
執行畫面如下
當我點擊EditText要輸入文字時,鍵盤會把layout推上去
如果今天你不想要layout被推上去,你可以修改Androidmanifeest ,
在activity的地方加上一行android:windowSoftInputMode="adjustNothing"
but自己就要去做滾輪或其他的方式來讓view可以滑動顯示。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="test.com.myapplication" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" android:windowSoftInputMode="adjustNothing" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
執行結果
[Mac] Mysql 啟動錯誤
有時候當你在Mac OSX啟動mysql時,會出現一個錯誤。
此時最簡單的一個方式,是開啟以下這一個檔案,裡面會一個pid的數值。
然候下指令
kill 90
再重新啟動一次mysql即可。
ERROR! The server quit without updating PID file (/usr/local/mysql/data/neils-iMac.local.pid).
此時最簡單的一個方式,是開啟以下這一個檔案,裡面會一個pid的數值。
sudo more /usr/local/mysql/data/mysqld.local.pid
90
kill 90
再重新啟動一次mysql即可。
2015年9月5日 星期六
[Mac] 啟動mysql
start
sudo /usr/local/mysql/support-files/mysql.server start
stop
sudo /usr/local/mysql/support-files/mysql.server stop
restart
sudo /usr/local/mysql/support-files/mysql.server restart
資料來源:
http://coolestguidesontheplanet.com/start-stop-mysql-from-the-command-line-terminal-osx-linux/
sudo /usr/local/mysql/support-files/mysql.server start
stop
sudo /usr/local/mysql/support-files/mysql.server stop
restart
sudo /usr/local/mysql/support-files/mysql.server restart
資料來源:
http://coolestguidesontheplanet.com/start-stop-mysql-from-the-command-line-terminal-osx-linux/
訂閱:
文章 (Atom)