2013年3月29日 星期五

[Android] Eclipse Code Style Formatter

Eclipse中,
project的property → Code Style → Formatter

可以更改設定檔的設定
可以用預設的
也可以import自訂的
或者可以用預設的去改,再export成一個設定檔,以後再使用

更改完,在Mac上按command+shift+F,在Windows上按ctrl+shift+F
就會自動把當下檔案做style format
如果沒有的時候,重新開一次Eclipse就可以囉!

[Android] 網路狀態 Network status listener/receiver

public class NetworkConnectionChangeReceiver extends BroadcastReceiver {
  private static final String TAG = NetworkConnectionChangeReceiver.class.getSimpleName();
  private Context mContext;

  @Override
  public void onReceive(Context context, Intent intent) {
    mContext = context;
    
    ConnectivityManager connectivityManager = (ConnectivityManager) context
        .getSystemService(Context.CONNECTIVITY_SERVICE);
    
    NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
    NetworkInfo mobileNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    NetworkInfo wifiNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    
    if(activeNetInfo != null) {
      Toast.makeText(context, "Active Network Type : " + activeNetInfo.getTypeName(), Toast.LENGTH_SHORT).show();
      Log.e(TAG, "activeNetInfo.isAvailable(): " + activeNetInfo.isAvailable());
      Log.e(TAG, "activeNetInfo.isConnected()(): " + activeNetInfo.isConnected());
    }
    if(mobileNetInfo != null) {
      Toast.makeText(context, "Mobile Network Type : " + mobileNetInfo.getTypeName(), Toast.LENGTH_SHORT).show();
      Log.e(TAG, "mobNetInfo.isAvailable(): " + mobileNetInfo.isAvailable());
      Log.e(TAG, "mobNetInfo.isConnected()(): " + mobileNetInfo.isConnected());
    }
    if(wifiNetInfo != null) {
      Toast.makeText(context, "Wifi Network Type : " + wifiNetInfo.getTypeName(), Toast.LENGTH_SHORT).show();
      Log.e(TAG, "wifiNetInfo.isAvailable(): " + wifiNetInfo.isAvailable());
      Log.e(TAG, "wifiNetInfo.isConnected()(): " + wifiNetInfo.isConnected());
    }
  }
}
設成broadcast receiver是為了
在這個app中,當網路狀態一改變就會知道。

2013年3月14日 星期四

[Android] Call an existed app from url 從網址連自己的app

<activity android:name=".MyActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="myapp" android:host="path" android:pathPrefix="/pathPrefix_1/pathPrefix_2/" />
    </intent-filter>
</activity>
在AndroidManifest.xml裡想要跳轉的那一頁(Activity),
裡面加上2~8行的<intent-filter>
就可以從網頁,或者網址Url直接連到自己的app。

2013年3月12日 星期二

[Android] Convert from dp to px / px to dp


Convert from dp to px

public static float convertDpToPixel(float dp, Context context) {
    DisplayMetrics metrics = context.getResources().getDisplayMetrics();
    float px = dp * (metrics.densityDpi / 160f);
    return px;
}
or
public static float convertDpToPixel(float dp, Context context) {
    float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
    return px;
}

[Android] ListView listSelector和背景問題


在2.3以下和在Motorola手機上,使用
android:listSelector="@drawable/selector"
之後, 預期效果是選到item時,item變成想要的顏色,
實際上卻發生,連listview背景一起變色的效果。


解決方式

@drawable/selector
裡面使用的背景改為使用shape的drawable,
而不要使用@color。
http://stackoverflow.com/questions/10989225/android-listview-entire-list-getting-selected


2013年3月9日 星期六

[食記] 新竹 北門炸粿

吃完新竹有名的黑貓包,
司機突然想起附近好像有很多人推薦的「北門炸粿」,
繞了繞終於在小巷子裡找到,
因為是晚上去的,招牌暗暗的,不容易發現,