1.接着菜鸟笔记4说,我希望把界面改为2按键结构——扫描,结算。两个键horizontal排列,用如下代码实现时出现了有趣的现象:
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/capture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_btn_capture"
/>
<Button
android:id="@+id/closeAndSum"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/str_btn_closeAndSum"
/>
</LinearLayout>
其中str_btn_capture = "/*结算*/",str_btn_closeAndSum="结算",结果如下:
总结说来就是中文字符不能实现wrap_content,但只要不是中文字符打头就行。正常效果如下:
2.扫描结束后我希望能弹出对话框,对话框有两个选项:/继续扫描下一件商品/,/结算/
弹出对话框的主要函数有:
精简版代码为:
private void choiceDialog() {
new AlertDialog.Builder(IsiCamera1Activity.this)
.setTitle(R.string.str_choiceDialog_title)
.setItems(R.array.items_choiceDialog,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int whichcountry) {
//what to do when each dialog is onClick...
}
}).show();
}
3.设置view大小,如何适应不同分辨率的手机的解决办法:使用dp作单位
dp也就是dip。这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换.