android UI布局常见问题

1.Android fill_parent、wrap_content和match_parent的区别

三个属性都用来适应视图的水平或垂直大小,一个以视图的内容或尺寸为基础的布局比精确地指定视图范围更加方便。

1)fill_parent

设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。

2) wrap_content

设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextView和ImageView控件为例,设置为wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。设置一个视图的尺寸为wrap_content大体等同于设置Windows控件的Autosize属性为True。

3)match_parent
Android2.2中match_parent和fill_parent是一个意思 .两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用。那么如果考虑低版本的使用情况你就需要用fill_parent了

2 五种布局及其重要标签

  •  框架布局FrameLayout重要标签:

android:layout_gravity

参考    http://wenku.baidu.com/view/12ca5929b4daa58da0114aea.html

android:background

android:layout_marginTop

android:layout_marginBottom

  •  线性布局LinearLayout

  android:orientation

它确定了LinearLayout的方向,其值可以为

*vertical, 表示垂直布局

*horizontal, 表示水平布局

android:layout_gravity

同上。

android:layout_weight

  •  框架布局 FrameLayout

关于设置android:layout_marginTop等属性失效

框架布局是直接覆盖在原图层上的。如果要定位我们需先设置     android:layout_gravity=”left”

然后再设置android:layout_marginTop等属性 否则无效

  • 相对布局RelativeLayout

相对布局 RelativeLayout 允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一。它灵活性大很多,当然属性也多,操作难度也大,属性之间产生冲突的的可能性也大,使用相对布局时要多做些测试。

RelativeLayout相对布局

RelativeLayout相对布局

下面是常用的一些属性

RelativeLayout用到的一些重要的属性:

第一类:属性值为true或false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物

第二类:属性值必须为id的引用名“@id/id-name”
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边

android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐

第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离

EditTextandroid:hint

设置EditText为空时输入框内的提示信息。

android:gravity
android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity=”right”则button上面的文字靠右

android:layout_gravity
android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity=”right”则button靠右

android:layout_alignParentRight
使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。

android:scaleType
android:scaleType是控制图片如何resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义区别:

CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示

CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)

CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽

FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示

FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置

FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置

FIT_XY / fitXY 把图片不按比例扩大/缩小到View的大小显示

MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。

** 要注意一点,Drawable文件夹里面的图片命名是不能大写的。

 

 

 

 

其他

Android中的Layout_weight详解

布局文件是:

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android
    android:orientation=”horizontal”
    android:layout_width=”fill_parent”
    android:layout_height=”fill_parent”
    >
<Button
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:layout_weight=”1″
android:text=”Button1″
/>
<Button
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:layout_weight=”2″
android:text=”Button2″
/>
</LinearLayout>
出现的布局是:button1占了2/3,button2占了1/3。
57e34f80d09736ec6d811907.jpg.png
但是如果将布局文件中的button的属性android:layout_width=”fill_parent”改为android:layout_width=”wrap_content”那么出现的结果为:button1占了1/3,button2占了2/3。
3.png

 

tomcat中的一些配置

1 若get方式传送的数据编码错误可以尝试修改server.xml

<Connector port=”8080″ protocol=”HTTP/1.1″

connectionTimeout=”20000″

redirectPort=”8443″ URIEncoding=”utf-8″ />

端口号也可以在这修改

一次性执行多条语句

项目中有很多小问题需要解决。一个是获取自动增长的数据。今天又解决了一个小问题。

就是在sql语句中若同时执行多条语句。我们是这样写的

insert into  table1(name) values ('name');insert into table2(ID,group) values()

可是在作为一条语句执行时报错

check the manual that corresponds to your MySQL server version for the right….

解决办法如下

1、在MySQL的连接字符串中设置allowMultiQueries=true。
2、在程序中对SQL语句以分号拆分成多条SQL语句,然后使用Statement的addBatch方法,最后executeBatch就行。

希望给搜到这个问题的童鞋帮助

sql,mysql插入数据时获取自动增长列的ID

1、Mysql

在MySQL中,使用auto_increment类型的id字段作为表的主键。通常的做法,是通过“select max(id) from tablename”的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表加以“X锁“,待获得max(id)的值以后,再解锁。这种做法需 要的步骤比较多,有些麻烦,而且并发性也不好。有没有更简单的做法呢?答案之一是通过select LAST_INSERT_ID()这个操作。乍一看,它和select max(id)很象,但实际上它是线程安全的。也就是说它是具体于数据库连接的。下面通过实验说明:

(1)、在连接1中向A表插入一条记录,A表包含一个auto_increment类型的字段。

(2)、在连接2中向A表再插入一条记录。

(3)、结果:在连接1中执行select LAST_INSERT_ID()得到的结果和连接2中执行select LAST_INSERT_ID()的结果是不同的;而在两个连接中执行select max(id)的结果是相同的。
其实在MSSQL中SCOPE_IDENTITY()和IDENT_CURRENT()的区别和这里是类似的。使用SCOPE_IDENTITY()可以 获得插入某个IDENTITY字段的当前会话的值,而使用IDENT_CURRENT()会获得在某个IDENTITY字段上插入的最大值,而不区分不同 的会话。

注:使用select last_insert_id()时要注意,当一次插入多条记录时,只是获得第一次插入的id值,务必注意!可以试试

2、sql
insert into book( Name,ISBN,Info)values(“sdaf”,”12345321236″,”asfadsfasfasdf”):select @@IDENTITY;

ainol fire 入手小评

我承认,我是个数码控,但也只能算个小菜。2月份在imp3论坛上逛时,正巧有网友发现mediapad在亚马逊上直降600。于是hold不住买了一台,但用了2个多月就转手了,给我的唯一感觉就是除了分辨率高点外 没有其他什么特点 ,特别是放高清电影居然有点小卡顿,最近又逛论坛时看到了3款机子都有mediapad的分辨率,价格只要都是799。但就外观来说我比较喜欢烈焰,其次还是它使用的是ips屏幕,原本是想买pipo的,看论坛里吹得那么火。 但是由于耗子的种种个人实在不大喜欢(机子还没出来就以用比人的缺点来比自己的优点)。

为什么不选择昂达呢,主要是没有蓝牙又没货,比如从手机发送文件到平板上会比较麻烦。蓝牙还可以用来听音乐什么的,比较方便。艾诺电池也是一大亮点,当初mediapad我感觉电池不是很耐用。

与此同时,刚好有人发帖说烈焰接受预定了大概5天左右到货。我看配置还行,样子也不错,就预定了一台,在兆联定的。应该是第一批吧,有人说我们是小白鼠,其实想想也觉得有点冲动了。。但我以前高中时买过艾诺的mp4 是 v2000se。当时为数不多的支持所有格式 特别是rmvb 和flv格式的mp4啊 。被我摔过不知道多少次了。一直都没坏(因为是铁壳子的)。也因为艾诺我才知道了imp3 当时它官网很多评测和固件在imp3论坛发布的。

好像有点扯远了。。。。。。

切入正题吧: 机子是我8月13拍的。兆联8月17发的货 今天中午到货,,不 应该是厂家 ,机子是直接从深圳发过来的 ,其余赠品兆联过几天再补发 。

拆开盒子,包装实在是有点寒酸,特别是那块气泡膜。右上角那个是充电器。

充电器 5V 2ma

来看看那层气泡膜吧 ,还是用手撕开的,没有撕齐 好吧 这应该是快递干的。。

终于见到可爱的包装盒啦。

有点像mediapad的包装盒 但薄大概一半。

有木有觉得那个塑料保护套是随手捡来的一个保鲜袋???

好吧拆开它…..屏幕很干净应该是没人拆过,但是 请注意 它没贴膜。手指很容易留下痕迹。莫非是防刮的大猩猩??

 

摄像头位置让我比较无语。中间不是 ,侧边也不是,给人感觉好像是准备放在中间,但一时手误放偏了。

机身还是比较薄的 。感觉和mediapad差不多。烈焰感觉要轻一些,估计采用的原料不同。mediapad背壳重一些吧、

 

ainol的标签。

机身图片

看看盒子里还有什么吧 右边是说明书 合格证 保修卡 左边是 数据线和耳机 如下图

这是随机的配件

内置QQ HD 正在烈焰群里聊天呢,

和同学台电P85双核对比  显得小巧 屏幕细粒得多

图片到此为止。

——————————–华丽分割线———————————————–

我讲一下我的一些操作体验:

1  我的是完美屏。没有亮点 没有漏光。。这一点我很满意。我上次买的mediapad有2个亮点 下边有漏光。这台没有。

2  电量还是令人满意的,我一直不间断玩了一下午。大概能坚持5个小时左右吧。

这是电量使用截图

这里我有点疑问  不知道是我设置了动态壁纸的原因还是电池本身的原因 在电量到50左右的时候会掉的非常快。大家从图中可以看到。顺便问一下其他人有这个情况吗?

机子的特色 优点我就不多说了 参数大家都知道,

我的机子跑分7678

本机缺点  不知道是否个例

1  发热比较严重,特别是左下角HDMI部分 ,玩游戏或者用安兔兔跑分 预测温度40-50度  这种天气(苦逼学生没得空调吹 )握在手上有点出汗。不知道冬天会不会成为我的优乐美呢。。

2  系统有点小问题。 比如明明是自动光感应 ,点击设置的时候,会变成手动的了。。(尽管没有滑动屏幕亮度的滑动条), 关闭重力感应 在屏幕锁定时 失效。

3 wifi 信号没同学的P85好 。(大家就不要认为P85就好些 他机子一天死几次机 就是待机的时候按电源无法启动,只能扣电池)。

4 做工我也想吐槽 我机子按右上角时会有咯吱咯吱的响声。

 

暂时就发现这些问题,我想发现问题才是好的,这样才能做到尽善尽美。