`
Jonathan樊
  • 浏览: 74774 次
  • 性别: 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

    Android开发与应用——张荣,原书配套课件

    这是Android开发与应用,原书配套的课件,作者张荣,...实验三 界面设计:布局管理器 实验四 多线程应用 实验五 基于文件的日程安排 实验六 基于SQLite的通信录 实验七 天气预报应用 实验八 音乐播放器及相机拍摄

    老罗android开发视频教程全集百度网盘下载

    【第一版第二章】老罗Android开发视频--常用UI布局介绍(5集) 【第一版第三章】老罗Android开发视频--HTTP协议编程(4集) 【第一版第四章】老罗Android开发视频--解析XML数据(3集) 【第一版第五章】老罗...

    android开发入门与实战(下)

    第14章 Android综合案例三——基于Android的豆瓣网(Web2.0)移动客户端开发 14.1 关于豆瓣网和豆瓣网API 14.1.1 豆瓣网介绍 14.1.2 豆瓣网API介绍 14.1.3 豆瓣网API认证 14.1.4 豆瓣网API快速入门 14.1.5 豆瓣网API...

    《Google Android开发入门与实战》.pdf

    第14章 android综合案例三——基于android的豆瓣网(web 2.0)移动客户端开发 260 14.1 关于豆瓣网和豆瓣网api 260 14.1.1 豆瓣网介绍 260 14.1.2 豆瓣网api介绍 261 14.1.3 豆瓣网api认证 261 14.1.4...

    android开发入门与实战(上)

    第14章 Android综合案例三——基于Android的豆瓣网(Web2.0)移动客户端开发 14.1 关于豆瓣网和豆瓣网API 14.1.1 豆瓣网介绍 14.1.2 豆瓣网API介绍 14.1.3 豆瓣网API认证 14.1.4 豆瓣网API快速入门 14.1.5 豆瓣网API...

    Android 自定义圆环动画切换、流式布局的实现.rar

    Android源码下载,自定义的圆环ImageView、ViewPager的动画切换、流式布局 自定义的带圆环的ImageView; 2、ViewPager的切换动画; 3、流式布局。。

    实验1--Android基础入门与Android-UI开发应用(1).doc

    课本第2章讲解了Android UI开发,其中包括了相对布局、线性布局、样式和主题、国际化等知识点。在实 际开发中,这些知识点的使用频率比较高,这里将通过一个综合型案例——手机信 息页来演示这些知识点的综合应用。...

    Google.Android开发入门与实战

    第14章 Android综合案例三——基于Android的豆瓣网(Web2.0)移动客户端开发 14.1 关于豆瓣网和豆瓣网API 14.1.1 豆瓣网介绍 14.1.2 豆瓣网API介绍 14.1.3 豆瓣网API认证 14.1.4 豆瓣网API快速入门 14.1.5 豆瓣网API...

    《Android应用开发揭秘》附带光盘代码.

    《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言  第一部分 准备篇  第1章 Android开发简介  1.1 Android基本概念  1.1.1 Android简介  1.1.2 Android的系统构架  1.1.3 ...

    《Android应用开发揭秘》源码

     2.3 创建第一个Android项目——HeUoAndroid  2.3.1 创建HelloAndroid项目  2.3.2 运行HelloAndroid及模拟器的使用  2.3.3 调试HelloAndroid  2.4 小结  第二部分 基础篇  第3章 Android程序设计基础  3.1 ...

    Google Android开发入门与实战的代码

    第14章 Android综合案例三——基于Android的豆瓣网(Web 2.0)移动客户端开发 260 14.1 关于豆瓣网和豆瓣网API 260 14.1.1 豆瓣网介绍 260 14.1.2 豆瓣网API介绍 261 14.1.3 豆瓣网API认证 261 14.1.4...

    Android应用开发揭秘pdf高清版

    《Android应用开发揭秘》内容全面,不仅详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发等基础知识,而且还深入阐述了传感器、语音识别、桌面组件开发、Android游戏...

    解析Android开发优化之:对界面UI的优化详解(一)

    Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等,这些都可以在应用程序中直接使用。这样做的好处很多,既可以减少内存的使用,又可以减少部分工作量,也可以缩减程序安装包的大小...

    新版Android开发教程.rar

    � 由于采用了 Java 作为应用开发语言,目前可用的传统第三方应用还很少,但由于 Android 是一款完全 开 源的移动计算平台,相信第三方应用会很快的丰富起来。 � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的...

    Android开发指南中文版-----应用程序框架

    用户界面事件UI Events 26 菜单Menus 26 高级话题Advanced Topics 27 适配器Adapter 27 风格与主题Styles and Themes 27 资源和资产Resources and Assets 28 资源引用Resource Reference 43 国际化和本地化...

Global site tag (gtag.js) - Google Analytics