屏幕旋转
检测屏幕方向:
int orientation = getResources().getConfiguration().orientation;
boolean landscape = (orientation == Configuration.ORIENTATION_LANDSCAPE);
强制Activity横屏
AndroidManifest里给Activity标签添加属性:
android:screenOrientation="landscape"
切换时自动重建
创建layout时在Qualifier列表中添加Orientation属性。调用R.layout.xxx时会自动根据屏幕方向选择对应的layout。
半内存屏障
例如有这样的程序,Init()
和Print()
在不同的线程上执行。
int data = 0;
bool inited = false; // 指示data字段是否已经设置的标志
void Init(){
data = 42;
inited = true; // 设置标志,指示data字段已经设置好了
}
void Print(){
// 如果有inited的标志,打印data字段的值
// 否则打印 Not initialized!
if(inited){
Console.WriteLine(data);
}else{
Console.WriteLine("Not initialized!");
}
}

- 原图,作者@RAKUROBIT_Lapis。
- 根据原图,画了大概的骨架作为粗略参考。
- 根据粗略骨架和原图,画出了大概的结构和轮廓。(尾巴有点画大了)
- 补充了结构。

- 原图,作者@RAKUROBIT_Lapis。
- 根据原图,以头的高度为标准定下来比例,画了大概的骨架作为粗略参考。
- 根据粗略骨架和原图,画出了大概的结构和轮廓。
- 补充了细节。
- 去除了红色参考线的最终图。