2012-07-10 133 views
0

我想以编程方式设计布局,这意味着不需要根据项目要求使用xml文件。 但是编程使用的术语与xml文件完全不同。它们是任何有用的教程,以编程方式学习,这意味着没有xml文件。引导我!Android中的用户界面设计

+0

尝试在google中搜索[如何以编程方式创建布局](http://www.google.com/search?q=android+create+layout+programatically&ie=utf-8&oe=utf-8&aq=t) – Praveenkumar 2012-07-10 10:26:06

+0

我试过了,但它没有完整的指导, – sivanesan1 2012-07-10 10:29:48

+0

更具体,你在找什么。如你所见,那里有很多教程。 – Ran 2012-07-10 10:31:00

回答

0

您可以创建任何视图你想

  • 线性布局

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
         LinearLayout.LayoutParams.FILL_PARENT, 
         LinearLayout.LayoutParams.WRAP_CONTENT); 
    
  • 文本视图

    final TextView tv = new TextView(this); 
        tv.setBackgroundColor(0xFFFF00FF); 
        tv.setTextColor(0xFF000000); 
        tv.setTypeface(null, Typeface.BOLD); 
        tv.setText("Where is Fred?"); 
        tv.setGravity(Gravity.CENTER_HORIZONTAL); 
    

和别的。

Source

+0

非常感谢你! – sivanesan1 2012-07-10 10:49:19

+0

我有另一个小的查询,,对于文本颜色,设置背景颜色你提到像0xFFFF00FF。这种颜色的格式是什么(十六进制格式),这种格式有多少种颜色可供选择,以及如何找到所有颜色代码,如0xFF000000 – sivanesan1 2012-07-10 10:54:00

+0

请参考维基页面 - http://en.wikipedia.org/wiki/Hexadecimal_color – 2012-07-10 10:58:22

0

我建议你花一些时间来学习的View类及其流行子类,如LinearLayoutRelativeLayout,等等。 (另外,花一点时间看Drawables。)

当你使用XML创建一个布局时,你使用XML来定义一个层次为View的对象,它在运行时被“充气”成一个real层次结构View XML布局文件描述的对象。例如,您的第一个XML布局文件可能是一个简单的LinearLayout包含TextView(注意,我简化它简洁):

<LinearLayout ... > 
    <TextView ... /> 
</LinearLayout> 

在你Activity你可以使用使用setContentView()此布局。

所有这些XML文件做的是提供规范,如果你喜欢,关于该系统需要建立(或膨胀)为您的View结构。最终的结果是,将会有一个真实的LinearLayout对象(它是View的子类),它具有子对象TextView(同样是View的子类)以及合适的布局参数。

上面做编程,你可能会做这样的事情(再次简化)(通过创建对象的实例,并使用他们的方法,而不是从XML充气IE):

LinearLayout container = new LinearLayout(this); 
TextView tv = new TextView(this); 
tv.setText("hello"); 
container.addChild(tv); // Simple example - usually you'd specify layout parameters 
setContentView(container); 

最基本的一点,我使用非常简单的术语来说,布局XML文件可以被认为是一种'脚本',您可以用它来告诉系统如何创建Views的层次结构。通过编程创建View对象实例并在其上调用适当的方法,可以创建完全相同的结果。无论采用哪条路线,最终结果都是一样的:内存中的一堆代表View层次结构的对象。

您会发现XML布局属性名称不一定与相应的方法名称相同,但可以使用相关API文档查看给定方法的相应XML属性字符串。例如,LinearLayout的API文档详细介绍了所有的方法以及XML属性。