最近公司组织项目组成员开发一个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++强制转换

    static_cast,dynamic_cast, const_cast, reinterpret_cast dynamic_cast比static_cast多了安全检测,判断源和目标有无继承被继承关 ...

  2. clamp 函数

    返回范围内的一个数值.可以使用 clamp 函数将不断增加.减小或随机变化的数值限制在一系列的值中. float clamp(float minnumber, float maxnumber, flo ...

  3. 搜索旋转排序数组 II

    跟进“搜索旋转排序数组”,假如有重复元素又将如何? 一句话思路:不能二分,因为复杂度是n eg全是0,找一个1 class Solution { public boolean search(int[] ...

  4. win8.1下cocos2d-x 3.x环境搭建

    Win8.1下Cocos2d-x 3.4环境搭建 第一步: 需要下载的:(Windows 64位系统下环境搭建) Ant   apache-ant-1.9.4-bin.zip NDK   androi ...

  5. 解决 listView gridView 与ScrollView嵌套时的冲突

    package com.xqx.fight; import android.app.Activity; import android.os.Bundle; import android.view.Me ...

  6. css3阴影效果

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

  7. Golang之Mysql事务

    Mysql事务 )原子性 )一致性 )隔离性 )持久性 示例代码 package main import ( "fmt" _ "github.com/go-sql-dri ...

  8. Oracle增加一列、修改一列数据类型

    Oracle增加一列.修改一列数据类型: 添加一列: alter   table   A   add( CFYJSNR  varchar2(20)); 修改列: alter  table A  ren ...

  9. POJ 1300.Door Man 欧拉通路

    Door Man Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2596   Accepted: 1046 Descript ...

  10. send发送一次buffer

    发送的字符串后面添加:\r\n 结束标志 否则发送1024或者程序接收默认的字节数 #include <stdio.h> #include <stdlib.h> #includ ...