关于SurfaceView竖屏问题:
http://stackoverflow.com/questions/7455399/rotating-a-camera-surfaceview-to-portrait
(小米4手机测试,camera.setDisplayOrientation(90);
可以实现)
微信聊天界面细节点:
1.当底部EditText获取焦点,软键盘弹出后,聊天记录ListView往上弹,而背景图片不发生改变。
EditText影响Activity布局,windowSoftInputMode肯定是这个属性嘛!但是设置了adjustResize之后发现,好像不行啊,图片也往上被压缩了。试试adjustNothing?倒是不弹了,但是EditText被软键盘盖住了,那肯定不是这个了。
最开始想到的是两层布局,用FrameLayout,然后控制ListView往上弹,另一个布局的背景图不动。测试发现,没法控制背景图不动(哎,其实应该按照这个思路往下走的,因为没细究如何控制背景图)
然后想到了另一个办法(参考
http://stackoverflow.com/questions/5307264/how-to-prevent-soft-keyboard-from-resizing-background-image),既然两层,那用window,在activity中 getWindow().setBackgroundDrawable(getResources().getDrawable(R.drawable.test));
哈哈,不动了吧。但是图片顶部被覆盖了(因为是整个window的背景的原因)
那咋办呢。还是两层布局,为啥背景图被压缩了?我也不知道,可不可以让背景图不被压缩,可以!套一个ScrollView
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/surfaceview"
android:layout_width="match_parent"
android:src="@drawable/test"
android:layout_height="match_parent" />
</ScrollView>
完美!
其他还需要注意的地方
比如说editText的监听事件那加一行listview的滚动mListView.setSelection(mStringList.size() - 1);
清单文件中Activity设置
android:windowSoftInputMode="adjustResize|stateAlwaysHidden"
listView设置transcriptMode属性
android:transcriptMode="alwaysScroll"