Android - 实用代码片段(2)

1.手动设置横竖屏

1
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);

2.暂时性设置隐藏StatusBar,点击屏幕后会再次出现,可用于全屏播放视频的时候.

1
View.setSystemUiVisibility(int visibility)

  1. View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,Activity不全屏显示(恢复到有状态的正常情况)。
  2. View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示。
  3. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。
  4. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住。
  5. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
  6. View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
  7. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏虚拟按键(导航栏)。有些手机会用虚拟按键来代替物理按键。
  8. View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显示处于低能显示状态(low profile模式),状态栏上一些图标显示会被隐藏。 3.线程安全的一种写法
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private static final Object sDecodeLock = new Object();
    synchronized (sDecodeLock) {
    try {
    return doParse(response);
    } catch (OutOfMemoryError e) {
    VolleyLog.e("Caught OOM for %d byte image, url=%s", response.data.length, getUrl());
    return Response.error(new ParseError(e));
    }
    }

4.去掉Actionbar下的阴影

1
2
3
<style name="MyAppTheme" parent="android:Theme.Holo.Light">
<item name="android:windowContentOverlay">@null</item>
</style>

5.子控件接收父控件的状态:无需Java代码即可实现点击父控件,变化子TextView的颜色.

1
android:duplicateParentState="true"

6.获取ListView滑动高度,这里是默认每个itemView的高度相等.

1
2
3
4
5
6
7
8
9
public int getScrollY() {
​ View c = mListView.getChildAt(0);
if (c == null) {
return 0;
}
int firstVisiblePosition = mListView.getFirstVisiblePosition();
int top = c.getTop();
return -top + firstVisiblePosition * c.getHeight() + mListView.getPaddingTop();
}

7.限制value的范围大小,value最大为max,最小为min

1
2
3
public float clamp(float value, float min, float max) {
return Math.max(min, Math.min(value, max));
}

Gavin Liu wechat
欢迎您扫一扫上面的二维码,订阅我的微信公众号!