最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的。 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的。

项目历时一个多月,4个人开发,最终行成一个可用的Demo,整体效果还非常不错。这其中借鉴了网上的“仿网易客户端的Demo”还有就是学习《疯狂Android》,收获颇多,这里利用几篇文章做一个项目经验总结,还有就是更多的从C#

程序员的观点来理解Android的一些异同之处。

文章目录:

CSharp程序员学Android开发---1.初识AndriodIDE,掌握工具使用

CSharp程序员学Android开发---2.个人总结的快捷键

CSharp程序员学Android开发---3.Android内部元素不填充BUG

案例:Layout Error:

  首先说明一下,这个问题是项目开发中遇到的难点之一,Baidu中的解决方案并不多,最终是泡在StackOverFlow上找到了答案。

  图中的红色部分是图片本应该填充的部分,但未填充而显示了背景红色,右侧的两条蓝色线条也是如此。相信很多人都遇到了这个问题,所以不想多说了,元素属性已经是fill_parent或者match_parent,可见在某些情况下fill_parent会无效。

  最后,欣喜的是在几个小时的尝试,Search之后终于找到了问题,这个是Layout的一个bug,已经有人提交到Android的官方,大概是问题出在,某些情况下控件没有刷新自身大小导致这样的结果。

  以下是解决步骤:
        1. 将fill_parent替换成match_parent
        2. 在ImageView中设置参数 android:adjustViewBounds="true" 和 android:scaleType="fitXY" ,建议所有ImageView都设置上。
            或  img.setScaleType(ScaleType.FIT_XY);  img.setAdjustViewBounds(true);

最终,所有图片均真正的“填充”了,其原理是强制图片刷新自己,可能这样会导致一些效率问题。

引用

BUG:当布局中其中一个控件为GONE时布局有误的解决办法:http://android-developers.blogspot.com/2009/02/android-layout-tricks-1.html
 BUG:LinearLayout中元素不fillBUG: http://stackoverflow.com/questions/5403970/imageview-adjustviewbounds-does-not-work-with-layout-height-fill-parent
                          http://stackoverflow.com/questions/16462407/android-imageview-from-url-wont-fill-parent-in-listview

CSharp程序员学Android开发---3.Android内部元素不填充BUG的更多相关文章

  1. CSharp程序员学Android开发---2.个人总结的快捷键

    最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...

  2. CSharp程序员学Android开发---1.初识AndriodIDE,掌握工具使用

    最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...

  3. .Net程序员学用Oracle系列(1):导航目录

    本人从事基于 Oracle 的 .Net 企业级开发近三年,在此之前学习和使用的都是 (MS)SQL Server.未曾系统的了解过 Oracle,所以长时间感到各种不习惯.不方便.怪异和不解,常会遇 ...

  4. .Net程序员学用Oracle系列(6):表、字段、注释、约束、索引

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.表 1.1.创建表 1.2.修改表 & 删除表 2.字段 2.1.添加字段 2.2.修改字段 & 删除字段 ...

  5. .Net程序员学用Oracle系列(8):触发器、任务、序列、连接

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.触发器 1.1.创建触发器 1.2.禁用触发器 & 启用触发器 & 删除触发器 2.任务 2.1.DBMS_ ...

  6. .Net程序员学用Oracle系列(9):系统函数(上)

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.字符函数 1.1.字符函数简介 1.2.语法说明及案例 2.数字函数 2.1.数字函数简介 2.2.语法说明及案例 3.日期 ...

  7. .Net程序员学用Oracle系列(10):系统函数(下)

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.转换函数 1.1.TO_CHAR 1.2.TO_NUMBER 1.3.TO_DATE 1.4.CAST 2.近似值函数 2. ...

  8. .Net程序员学用Oracle系列(11):系统函数(下)

    1.聚合函数 1.1.COUNT 函数 1.2.SUM 函数 1.3.MAX 函数 1.4.MIN 函数 1.5.AVG 函数 2.ROWNUM 函数 2.1.ROWNUM 函数简介 2.2.利用 R ...

  9. .Net程序员学用Oracle系列(15):DUAL、ROWID、NULL

    1.DUAL 表 2.ROWID 类型 2.1.利用 ROWID 查询数据 2.2.利用 ROWID 更新数据 3.NULL 值 3.1.NULL 与空字符串 3.2.NULL 与函数 3.3.NUL ...

随机推荐

  1. 二叉树的创建、遍历(递归和非递归实现)、交换左右子数、求高度(c++实现)

    要求:以左右孩子表示法实现链式方式存储的二叉树(lson—rson),以菜单方式设计并完成功能任务:建立并存储树.输出前序遍历结果.输出中序遍历结果.输出后序遍历结果.交换左右子树.统计高度,其中对于 ...

  2. 第八章 高级搜索树 (b4)B-树: 插入

  3. Python str() 函数

    Python str() 函数  Python 内置函数 描述 str() 函数将对象转化为适于人阅读的形式. 语法 以下是 str() 方法的语法: class str(object='') 参数 ...

  4. MySQL优化update操作

    http://www.cnblogs.com/jevo/p/3314928.html 用replace代替delete和insert. insert用批量. 用延迟(类似于缓冲,会否饿死) 大量插入, ...

  5. 浅谈QT打印功能实现

    QT作为一款轻量级的集成开发环境,其设计的目标是使开发人员利用QT这个应用程序框架更加快速及轻易的开发应用程序.要达到此目的,要求QT必须能够跨平台,QT能够在32位及64位的Linux,MAC OS ...

  6. collections之命名元组

    #python中没有为我们提供可命名的tuple的类,这个类需要我们自己来定义,下面我们就自己来定义一个类,然后namedtuple就是可以通过名称来get#tuple中的元素,python中的tup ...

  7. discuz的diy功能介绍

    可以通过页面操作的方式,完成页面布局设计,数据聚合,样式等常见的页面处理功能.   以管理员登陆discuz的前台时,会出现一个diy按钮. 流程,先设计框架,再完成数据的聚合.     定义模板时, ...

  8. css3阴影效果

    http://blog.csdn.net/freshlover/article/details/7610269

  9. js-移动端android浏览器中input框被软键盘遮住的问题解决方案

    我遇到的问题:在一个页面里有一个弹出层之前我给我的最外层加了固定定位 用了下面的方法也不好使:没有办法我将之改为绝对定位层级变高在加上一个顶部标签通过js计算顶部高度来实现满屏遮挡: <sect ...

  10. springmvc 整合shiro

    1.引用maven <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro ...