`
Jonathan樊
  • 浏览: 77041 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Android开发——(三)布局UI界面

阅读更多

    在应用的开发中,UI界面是很重要的一块。因为其是直接呈现给用户的东西。人都是喜欢美好的事物,我一直对界面有一种特别的挑剔,与我的手机主题不搭调的APP我是不会使用的大笑。我曾经的梦想,不,也可以说现在的梦想以及以后的梦想之一也是可以出自己的绘本。所以《黑客与画家》那本书感动我至今,我想作者真真是潇洒的,有一天,也可以希望自己可以重新回到校园,选一所喜欢的学校,读一个喜欢的专业,无关功利,只因兴趣。我想我是不会放弃的。我写博客有总结的作用,但更重要的是一种记录吧。毕竟总结很多方式都可以,但是记录我希望是永恒的,等我哪天想起,就会来翻看一下以前的博客,回想下当时的心情。所以博客里面大都在自言自语,这是我想自己讲给自己的话,自己为自己留下的记录。

     

    言归正传,关于UI的设置,Android为用户提供了四种方式。下面一一讲来。

 

    一:使用XML布局UI界面。

    在res/layout下有相应的XML布局文件。每新建一个Activity,res/layout 都会自动新建一个与之名称对应的XML文件,创建后,R.java会自动收录该布局资源。在Activity中使用

setContentView(R.layout.name);

 即可显示相应的布局文件内容。name是相应的XML文件名。示例如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
 <EditText android:id="@+id/edit_message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />
 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />
</LinearLayout>

 

 

    这个例子依然是官网的例子,短小精悍,我想所有的教程都是从官网资料演变而来的,不如直接看官网,顺便可以练习英文大笑。    

    其实这一段代码,让我想起了以前用flex的情景,和flex写界面语法是非常相似的,所以有一种莫名的熟悉感大笑。Activity 在Android 中差不多和Swing 中的(J)Frame 相类,View 在Android 中和Swing 中的(J)Components 相类,TextView 在Android 中和Swing 中的(J)Lable 相类,EditText 在Android 中和Swing 中的(J)TextField 相类,Button 在Android 中和Swing 中的(J)Button 相类,因为写过一点Java的缘故,还是很容易接受的。

 

    二:写Java代码布局UI界面(类似Java Swing)

 

//1,创建布局管理器,并且设置布局管理器的属性
        FrameLayout frame =new FrameLayout(this);//创建帧布局管理器
//        frame.setBackgroundDrawable(this.getResources().getDrawable
//        		                (R.drawable.background));//设置背景图片
//        frame.setBackground(this.getResources().getDrawable(R.drawable.background));
        setContentView(frame);
        TextView text1=new TextView(this);//相当于Swing 中的(J)Lable
        text1.setText("在代码中控制UI界面");
        text1.setTextSize(TypedValue.COMPLEX_UNIT_PX, 24);//设置字体大小,单位为像素
        text1.setTextColor(Color.rgb(1, 1, 1));//设置颜色
        
        frame.addView(text1);
        
        text2=new TextView(this);
        text2.setText("单击进入游戏......");
        text2.setTextSize(TypedValue.COMPLEX_UNIT_PX, 24);//设置字体大小,单位为像素
        text2.setTextColor(Color.rgb(1, 1, 1));//设置颜色
        FrameLayout.LayoutParams params=new FrameLayout.LayoutParams(
        		ViewGroup.LayoutParams.WRAP_CONTENT,
        		ViewGroup.LayoutParams.WRAP_CONTENT);
        
        params.gravity=Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL;//设置居中
        text2.setLayoutParams(params);//设置布局参数
        
        frame.addView(text2);

 

 

 

    三:使用XML和Java代码混合布局UI界面。

    XML实现方便快捷,但是缺少灵活性,Java实现灵活,但是开发过程繁琐。可以使用XML和Java混合使用来布局界面。把变化小,行为比较固定的组件放在XML里,把变化较多,行为控制比较复杂的组件来使用Java代码实现。

android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:background="@drawable/background"
    android:id="@+id/layout" 

 

public class MainActivity extends ActionBarActivity {

	private ImageView[] img=new ImageView[4];
	private int[] imgPath=new int[]{
			R.drawable.img01,R.drawable.img02,R.drawable.img03,
			R.drawable.img04
	};//声明并初始化一个保存图片的数组
	
// 	@SuppressWarnings("deprecation")
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LinearLayout layout=(LinearLayout)findViewById(R.id.layout);
        for(int i=0;i<imgPath.length;i++){
        	img[i]=new ImageView(this);
        	img[i].setImageResource(imgPath[i]);
        	img[i].setPadding(5, 5, 5, 5);
        	
        	FrameLayout.LayoutParams params=new FrameLayout.LayoutParams(
            		253,148);
        	img[i].setLayoutParams(params);
        	//layout.addView(img[i]);
        }
        
        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment())
                    .commit();
        }
    }

要注意的是Fragment的使用。在最新的Android SDK,新建一个Project后是有连个XML的,一个activity_main.xml,一个fragment_main.xml。

分享到:
评论

相关推荐

    安卓Android源码——奇艺高清UI界面源码.zip

    "安卓Android源码——奇艺高清UI界面源码.zip"是一个压缩包,其中包含了用于创建类似奇艺高清视频应用的UI设计的源代码。这个资源对于学习和理解如何在Android平台上构建高质量、高清晰度的UI具有很高的价值。 首先...

    安卓Android源码——奇艺高清UI界面源代码.zip

    "安卓Android源码——奇艺高清UI界面源代码.zip"提供了一个深入理解Android UI设计和实现的实例,特别关注了奇艺高清应用程序的界面。这个压缩包可能包含XML布局文件、Java代码、资源文件等,这些都能帮助开发者学习...

    安卓Android源码——UI界面源码.zip

    这个名为“安卓Android源码——UI界面源码.zip”的压缩包,很显然是一个包含Android用户界面(UI)相关源代码的资源集合。下面我们将详细探讨Android UI界面的构建原理以及可能包含的知识点。 1. **Android UI框架*...

    Android源码——UI界面源码.rar

    总的来说,学习并理解这个“Android源码——UI界面源码.rar”中的内容,对于深入理解Android UI开发、提升自定义界面能力具有很大的帮助。开发者可以通过阅读源码,学习如何高效地创建、管理和交互UI组件,进一步...

    Android源码——UI界面源码.zip

    本资源“Android源码——UI界面源码.zip”包含了一些关于Android UI界面的源代码,帮助开发者深入理解Android UI的设计原理和实现机制。下面我们将详细探讨Android UI界面的相关知识点。 首先,Android UI主要基于...

    安卓Android源码——Adroid UI 界面绘制原理分析.zip

    本资料"安卓Android源码——Adroid UI 界面绘制原理分析.zip"包含了一份详细分析Android UI界面绘制的文档,旨在帮助开发者深入理解这一过程。 首先,我们要了解Android UI的基础组件——视图(View)和视图组...

    安卓Android源码——模仿易信UI布局效果源码.zip

    这个压缩包"安卓Android源码——模仿易信UI布局效果源码.zip"提供了一个学习案例,它旨在帮助开发者了解如何模仿流行的即时通讯应用易信的用户界面(UI)布局。通过分析和实践这个源码,我们可以学习到以下关键知识...

    Android开发——布局管理

    在Android应用开发中,布局管理(Layout Management)是构建用户界面(UI)的关键部分,它决定了应用程序中的元素如何排列和相互作用。布局是XML文件,通常位于`res/layout`目录下,它们定义了屏幕上的视图(View)...

    安卓Android源码——ui开发类库示例源码.zip

    本资源“安卓Android源码——ui开发类库示例源码.zip”提供了丰富的UI开发示例,帮助开发者更好地理解和应用各种UI类库。下面,我们将详细探讨这些知识点。 1. **Android UI组件**:Android SDK包含了多种内置的UI...

    安卓Android源码——android模仿易信UI布局效果源码.zip

    这个压缩包"安卓Android源码——android模仿易信UI布局效果源码.zip"提供了一个实战案例,帮助开发者了解如何模仿流行通讯应用易信的用户界面(UI)布局。易信的UI设计以其简洁、清晰和易于操作而著称,因此,通过...

    Android源码——UI界面源码.7z

    本文将围绕"Android源码——UI界面源码.7z"这一主题,详细阐述Android UI界面背后的源码实现。 首先,Android UI基于一个名为"视图(View)"的层次结构,每个视图可以是一个按钮、文本框或其他可交互的元素。`View`类...

    安卓Android源码——QQ_UI之分类菜单.zip

    【安卓Android源码——QQ_UI之分类菜单】这个压缩包主要包含了关于安卓应用程序开发中,QQ用户界面(UI)设计的分类菜单实现的源代码和相关资源文件。在这个项目中,开发者可以学习到如何在Android平台上创建类似QQ...

    安卓Android源码——android模仿易信UI布局效果源码.rar

    这个压缩包"安卓Android源码——android模仿易信UI布局效果源码.rar"提供了一个学习如何模仿易信(YiXin)用户界面(UI)布局的实例。易信是一款流行的即时通讯应用,其用户界面设计简洁、直观,深受用户喜爱。下面...

    Android源码——UI界面漂亮的天气预报源码.7z

    这篇文档将深入解析《Android源码——UI界面漂亮的天气预报源码》的相关知识点,主要涉及Android应用程序开发,尤其是用户界面(UI)设计和天气预报应用的实现。 首先,Android是Google开发的一种开源操作系统,...

    Android源码——UI界面漂亮的天气预报源码.zip

    这篇内容将深入解析《Android源码——UI界面漂亮的天气预报源码》的相关知识点,主要涉及Android应用程序开发,尤其是用户界面(UI)设计和实现。在Android平台上,UI设计是提升用户体验的关键因素,而天气预报应用...

    Android源码——仿苹果通话界面源码.zip

    综上所述,这个"Android源码——仿苹果通话界面源码.zip"项目涵盖了Android UI设计、自定义视图、事件处理、状态栏与导航栏定制、权限管理和性能优化等多个核心知识点。通过研究这个源码,开发者不仅可以学习到如何...

    Android源码——仿苹果通话界面源码.7z

    【Android源码——仿苹果通话界面源码】是一个Android开发项目,旨在实现与苹果iOS通话界面类似的用户界面和交互体验。这个源码可以帮助Android开发者学习和理解如何在Android平台上创建高度定制和美观的用户界面,...

    安卓Android源码——-整体UI设计(滑动导航栏+滚动页面).zip

    本资源提供的"安卓Android源码——-整体UI设计(滑动导航栏+滚动页面)"是一个实例,展示了如何构建一个包含滑动导航栏和滚动页面的用户界面。通过这个项目,开发者可以学习到如何实现动态、互动且具有现代感的UI...

    安卓Android源码——QQ_UI之分类菜单DEMO.zip

    【标题】:“安卓Android源码——QQ_UI之分类菜单DEMO.zip”是一个关于安卓应用程序开发的源代码示例,特别关注于实现QQ风格的分类菜单功能。这个DEMO旨在帮助开发者理解和实现类似QQ应用中的用户界面(UI)设计,...

Global site tag (gtag.js) - Google Analytics