`
250367976
  • 浏览: 26720 次
社区版块
存档分类
最新评论

Android学习笔记之界面控件大小dip及布局管理器嵌套使用

阅读更多



 做Android也有三个星期了,但还没有做项目,一直在做一个练习的Android英语词典,在做的过程中也

遇到过很多问题,今天就来总结一下;因为问题比较多,就分类来总结吧……首先刚开始做的时候,肯

定是做界面啦,不过英语词典里面有一个卡片模式,搞得我很蛋疼,,因为我只知道用LinearLayout,

而用LinearLayout做出那个效果真的有点难,所以我研究了几天,也做了很多尝试,后来终于做出来了

xml代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="match_parent" 
	android:background="@android:color/white"
	android:cacheColorHint="#000000" 
	android:layout_height="match_parent"
	android:orientation="vertical">
	<LinearLayout 
	    android:layout_height="wrap_content"
		android:orientation="vertical" 
		android:layout_width="match_parent"
		android:gravity="center">
		
		<TextView android:id="@+id/textView1" 
			android:textSize="30dip"
			android:layout_height="60dip" 
			android:gravity="center"
			android:textColor="#ffffff" 
			android:background="@color/cyan"
			android:layout_width="fill_parent" 
			android:text="必备单词"/>
			
		<LinearLayout android:layout_height="wrap_content"
			android:orientation="horizontal" 
			android:layout_width="match_parent"
			android:gravity="center">
			
			<TextView android:id="@+id/textView2"
			    android:text="课程重点:"	
				android:textColor="#000000" 
				android:layout_width="wrap_content"
				android:layout_height="wrap_content"/>
				
			<Spinner android:id="@+id/spinner1"
			    android:layout_height="wrap_content"
				android:entries="@array/bibei"
				android:prompt="@string/srp_name"
				android:layout_width="200dip" />
				
		</LinearLayout>
		
		<LinearLayout 
		    android:layout_height="120dip"
			android:orientation="vertical" 
			android:gravity="right"
			android:layout_width="280dip">
			
			<RelativeLayout 
			    android:layout_height="120dip"
				android:orientation="horizontal" 	
				android:layout_width="280dip">
				
				<TextView android:id="@+id/wordView2"	
					android:textColor="#000000" 
					android:textSize="30dip"
					android:background="@drawable/bg_border"
					android:gravity="center|center_vertical"
					android:layout_width="280dip"
					android:layout_height="match_parent"/>
					
				<TextView android:id="@+id/sumView2"
				    android:text="0/0" 	
					android:textColor="#000000" 
					android:layout_alignParentRight="true"
					android:layout_width="wrap_content"
					android:layout_height="wrap_content"/>
					
				<TextView android:id="@+id/textView7"
				    android:layout_width="wrap_content"
					android:visibility="gone" 
					android:layout_marginLeft="10dip"
					android:textColor="#ffffff" 	
					android:layout_height="wrap_content" 
					android:text=""/>
					
				<ImageView android:id="@+id/imageView1"
				    android:layout_height="wrap_content" 	 
					android:layout_alignParentLeft="true"
					android:layout_marginLeft="3dip"
					android:layout_marginTop="3dip"
					android:layout_width="wrap_content" 
					android:src="@drawable/qqqw"/>
					
				<LinearLayout 
			        android:layout_height="wrap_content"
				    android:orientation="vertical" 
				    android:layout_alignParentBottom="true"	
				    android:gravity="center"
				    android:layout_width="280dip">
				    
				    <ImageView android:id="@+id/imageShengyin"
				    android:layout_height="wrap_content" 	 
					android:layout_alignParentLeft="true"
					android:layout_width="wrap_content" 
					android:src="@drawable/suona"/>
				    
				</LinearLayout>
				
			</RelativeLayout>
			
		</LinearLayout>
		
		<LinearLayout 
		    android:layout_height="120dip"
			android:orientation="horizontal" 
			android:gravity="center"
			android:layout_width="280dip">
			
			<TextView android:id="@+id/enpView2" 
			    android:layout_height="match_parent" 	
				android:textColor="#000000" 
				android:textSize="20dip"
				android:background="@drawable/bg_border"
				android:gravity="center|center_vertical"
				android:text="" 
				android:layout_width="280dip"/>
				
			<TextView android:id="@+id/textID"
			    android:layout_width="wrap_content"
				android:visibility="gone" 
				android:layout_marginLeft="10dip"
				android:textColor="#ffffff" 
				android:layout_height="wrap_content" 
				android:text=""/>
				
		</LinearLayout>
		
		<SeekBar android:id="@+id/seekbar"
			android:layout_width="280dip" 
			android:layout_height="wrap_content" />
			
		<LinearLayout 
		    android:layout_height="wrap_content"
			android:orientation="horizontal" 
			android:gravity="center"
			android:layout_width="match_parent">
			
			<Button android:id="@+id/liubutton1"
			    android:layout_height="wrap_content" 
				android:text="自动浏览"
				android:layout_width="wrap_content" />
				
			<Button android:id="@+id/shangbutton1"
			    android:layout_height="wrap_content" 
				android:text="上一页"
				android:layout_width="wrap_content" />
				
			<Button android:id="@+id/xiabutton1"
			    android:layout_height="wrap_content" 
				android:text="下一页"
				android:layout_width="wrap_content" />
		</LinearLayout>
	
	</LinearLayout>
	
	<LinearLayout 
	    android:layout_height="wrap_content"
		android:orientation="vertical" 
		android:layout_width="match_parent">
		
		<Button android:id="@+id/button1"
		    android:layout_height="wrap_content" 
			android:text="返回"
			android:layout_width="80dip" />

	</LinearLayout>
	
	<LinearLayout 
	    android:layout_height="wrap_content"
		android:orientation="horizontal" 
		android:layout_alignParentBottom="true"
		android:layout_width="match_parent">
		
		<TextView android:id="@+id/kabView2"
		    android:text="卡片模式" 			
			android:textColor="#ffffff" 
			android:background="#2F4F4F"
			android:gravity="center|center_vertical"
			android:layout_width="160dip"
			android:layout_height="40dip" />
			
		<TextView android:id="@+id/lieView2"
		    android:text="列表模式" 			
			android:textColor="#ffffff" 
			android:background="#2F4F4F"
			android:gravity="center|center_vertical"
			android:layout_width="160dip"
			android:layout_height="40dip"/>
		
	</LinearLayout>
	
</RelativeLayout>

 有些命名什么的不规范,看得懂就行,界面也不好看,不过那是样式的问题了

灵活用LinearLayout和RelativeLayout嵌套使用,足可以应付你的界面了。比如你要一控件在你想要的

任何地方,用RelativeLayout的android:layout_marginTop(距离顶部多少多少)是可以,但界面不可

能就一个控件,有些控件不需要这样,当然就RelativeLayout绝对可以但很麻烦……所以我们可以给一

个LinearLayout让这个控件跟其他区域分清楚点,再在里面用RelativeLayout来布局,这样分块就会很

清晰。

好了,原先我的界面布出来了,在虚拟机里运行也很正常,但当我下到自己的手机安装的时候,哎呀!

那界面真是惨不忍睹啊,有些控件正常显示,有些被缩得跟头发一样(夸张了点),反正界面都变形了

……可以是做为Android新手的我不知道啊,后来问过前辈才知道……我用了

android:layout_height="50px"  ,用px来定大小的话很容易出错,因为它是根据像素来的,比如你画

160px的线在480*800像素的手机上就是1/3长,那么在320*480的手机上就是一半长了,如果这样的话,

就很尴尬了……但Android里有一个dip,用这个的话,在不同的设备会有不同的效果,我把它理解成是

根据比例来的(个人这样理解);就说我觉得比较容易理解的吧反正这样用没错啦:dip把手机统一假设

为是320*480像素的,1dip=1px,如果把宽设为160dip那么就是频幕宽的一半,不管是在320*480像素的,

还是480*800像素的等等,它都是频幕宽的一半,高也是这样啊。

可能你觉得我的废话比较多,但是看完一件事件的经过,会让你可以举一反三(也是在告诫我自己)。

 

  • 大小: 21.6 KB
分享到:
评论

相关推荐

    Android学习笔记16:布局管理器的嵌套

    本篇学习笔记主要探讨的是如何在Android应用中进行布局管理器的嵌套,这是一项提升界面复杂性和交互性的技术。我们将深入理解嵌套布局的工作原理,同时通过一个名为`NestedLayoutDemo`的实际项目来实践这些概念。 ...

    Android学习笔记(十)——实现新闻列表

    Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) Android学习笔记(四)Android 中Activity页面的...

    Android学习笔记13:表格布局管理器TableLayout

    本篇学习笔记将深入探讨TableLayout的核心概念、属性以及使用方法。 一、TableLayout的基本结构 TableLayout由多个TableRow组成,每个TableRow代表一行,可以包含一个或多个子视图。在Android XML布局文件中,...

    Android学习笔记之常用控件

    在Android开发中,掌握常用控件的使用是至关重要的,因为它们构成了用户界面的基础。本篇将详细讲解两个常用的控件:ProgressBar和ListView。 首先,我们来看ProgressBar,它是一个表示操作进度的可视化组件。...

    第一行代码 android学习笔记 完整版

    Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中系统地介绍了Android...

    Android学习笔记14:相对布局管理器RelativeLayout

    在Android应用开发中,布局管理器是界面设计的关键部分,它们负责组织和定位应用程序中的UI元素。本篇我们将深入探讨相对布局管理器(RelativeLayout),这是一种非常灵活的布局方式,允许UI元素相对于彼此或父布局...

    Android学习笔记15:绝对布局管理器AbsoluteLayout

    在本篇“Android学习笔记15:绝对布局管理器AbsoluteLayout”中,我们将深入探讨一种允许开发者精确控制视图位置的布局方式——AbsoluteLayout。尽管在现代Android开发中已经不推荐使用,但在某些特定场景下,它仍然...

    黑莓学习笔记之二--布局管理器Manager

    本文将以“黑莓学习笔记之二--布局管理器Manager”为主题,深入探讨黑莓平台上的布局管理器及其使用技巧。 黑莓操作系统(BlackBerry OS)提供了一套强大的布局管理工具,称为Manager类,用于组织和控制应用程序的...

    Android自定义控件之组合控件学习笔记分享

    我们来讲一下自定义组合控件,相信大家也接触过自定义组合控件吧,话不多说,直接干(哈~哈~): 大家看到这个觉得这不是很简单的吗,这不就是写个布局文件就搞定嘛,没错,确实直接上布局就行,不过,我只是用这个...

    Android 学习笔记

    除了这些,Android还提供了其他的布局管理器,如LinearLayout(线性布局)、RelativeLayout(相对布局)、GridLayout(网格布局)、TableLayout(表格布局)和ConstraintLayout(约束布局)等。每种布局都有其特定的...

    android安卓app开发之widget界面控件使用教程.zip

    【Android 安卓 App Widget 界面控件使用教程】 Android 安卓系统提供了一种称为 App Widget 的功能,这是一类特殊的用户界面组件,可以让应用程序的部分功能直接出现在用户的主屏幕上,无需打开应用就能进行交互。...

    android学习笔记之一常用控件.doc

    这篇学习笔记主要涵盖了几个常见的控件:EditText、RadioGroup与RadioButton、CheckBox、Spinner、AutoCompleteTextView以及MultiAutoCompleteTextView,还包括了DatePicker和TimePicker的使用。 1. **EditText**:...

    Android学习笔记12:框架布局管理器FrameLayout

    在Android开发中,布局管理器是构建用户界面的关键部分,它们负责组织和定位视图(View)或视图组(ViewGroup)。本篇我们将深入探讨`FrameLayout`,这是一个非常基础但灵活的布局管理器,它允许你在屏幕上精确地...

    android学习笔记2(五种布局)

    约束布局支持双向依赖,使得界面设计更为直观和高效,尤其在处理复杂布局时,可以减少嵌套布局的使用,提高性能。 在实际开发中,往往需要结合使用这些布局,根据具体需求选择最合适的布局类型。例如,可以使用线性...

    黑马66期android学习笔记14-电话拨号器定义布局&获取组件对象

    本篇学习笔记主要探讨了如何自定义电话拨号器的布局以及如何获取布局中的组件对象,这些都是构建自定义拨号应用的关键步骤。以下将详细阐述这两个知识点。 首先,**定义布局** 是Android开发中的基础工作。在XML...

    Android开发学习笔记

    ### Android开发学习笔记 #### Button按钮的实现与交互 在Android开发中,`Button`控件是最常用的用户界面元素之一,用于触发特定的操作或事件。本文档将详细讲解如何创建并自定义一个简单的按钮,并设置点击事件...

    Android学习笔记1

    从给定的文件信息来看,这些内容主要是Android开发的学习笔记,涵盖了从基础控件的添加、布局的设置、样式主题的调整到Activity生命周期的管理等多方面的知识点。以下是对文件内容的具体分析: 1. 添加TextView控件...

    android界面开发笔记相关代码

    总结来说,Android界面开发涵盖了XML布局设计、布局管理器、主题与样式、事件监听、Fragment和动画等多个方面。理解并掌握这些知识点,对于构建高效、美观的Android应用至关重要。提供的"android开发笔记(界面)....

    黑马66期android学习笔记19_线性布局的特性

    子视图可以是普通的Android视图(如TextView、ImageView等),也可以是其他布局(如RelativeLayout、FrameLayout等),这样就可以实现嵌套布局,增强UI设计的灵活性。 七、性能优化 尽管线性布局简单易用,但在处理...

Global site tag (gtag.js) - Google Analytics