布局
View类是android系统平台上用户界面的基本单元。
View类的一些子类被统称为widgets
Linearyout:线性布局(在该标签下根据其orientation属性的值来决定是按行或者按列逐个显示)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >其属性“orientation”指定子元素排列方式,其中指定为vertical是子元素垂直排列,每个子元素会占独立的一行,horizontal代表子元素水平排列,每个资源元素会占独立一列
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/text"
android:id="@+id/text"/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="250dp"
android:text="@string/cancle"
android:layout_alignParentRight="true"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="200dp"
android:text="@string/ok" />
</RelativeLayout>
</LinearLayout>

Tablelayout:表格布局
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="*">
<TableRow >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sex"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/age"/>
</TableRow>
<TableRow >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/namel"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sexl"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/agel"/>
</TableRow>
</TableLayout>

注:<TableRow>定义一个行
<TableView>定义一个单元的内容
Android:stretchColumns=“0,1,2”该属性指定每行都由第“0,1,2,”列占满空白空间。
Gravity指定文字对齐方式
Padding指定视图与视图内容的空隙,单位为像素。
Relativelayout:相对布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:id="@+id/button1"/>
<Button
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_toRightOf="@id/button1"
android:layout_marginLeft="150dp"
android:id="@+id/button2"/>
<Button
android:id="@+id/button3"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_below="@id/button2"
android:layout_marginLeft="26dp"
android:layout_marginRight="26dp"
android:layout_marginTop="24dp"
android:layout_toRightOf="@+id/button1" />
<Button
android:id="@+id/button4"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_below="@id/button3"
android:layout_marginTop="22dp" />
<Button
android:id="@+id/button5"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_below="@id/button3"
android:layout_toRightOf="@id/button4"
android:layout_alignLeft="@id/button2"
android:layout_marginTop="22dp"/>
</RelativeLayout>

注:android:layout_below=”@id/*”将钙元素放到id为*的元素下
android:layout_toLeftOf=”@id/*”放到id为*的元素的左边
android:layout_Top=”@id/*”放到id为*的元素的顶部
4、FrameLayout(帧布局):默认以屏幕左上角为(0,0)坐标定义的先后顺序依次逐屏显示,后出现的会覆盖前面的画面。
package cn.lyhz;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.FrameLayout;
public class FrameLayoutActivity extends Activity {
FrameLayout frame = null;
boolean flag = true;//点击事件的开关
class MyHandler extends Handler{
int i = 0;
public void handleMessage(Message m){
i++;让图片依次显示
show(i % 10);//设置frame前景图片
sleep(10);
}
public void sleep(long delayMillis){
if(flag){判断是否继续执行循环
sendMessageDelayed(obtainMessage(0), delayMillis);
}
}
void show(int j){被调用以更新帧布局的前景图片
获取图片
Drawable a = getResources().getDrawable(R.drawable.a);
Drawable b = getResources().getDrawable(R.drawable.b);
Drawable c = getResources().getDrawable(R.drawable.c);
Drawable d = getResources().getDrawable(R.drawable.d);
Drawable e = getResources().getDrawable(R.drawable.e);
Drawable f = getResources().getDrawable(R.drawable.f);
Drawable g = getResources().getDrawable(R.drawable.g);
Drawable h = getResources().getDrawable(R.drawable.h);
Drawable i = getResources().getDrawable(R.drawable.i);
Drawable z = getResources().getDrawable(R.drawable.z);
switch(j){
case 0:frame.setForeground(a);break;
case 1:frame.setForeground(b);break;
case 2:frame.setForeground(c);break;
case 3:frame.setForeground(d);break;
case 4:frame.setForeground(e);break;
case 5:frame.setForeground(f);break;
case 6:frame.setForeground(g);break;
case 7:frame.setForeground(h);break;
case 8:frame.setForeground(i);break;
case 9:frame.setForeground(z);break;
}
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
frame = (FrameLayout)this.findViewById(R.id.frame);
final MyHandler myHandler = new MyHandler();创建一个Handler子类对象
myHandler.sleep(10);
frame.setOnClickListener(new View.OnClickListener() {设置点击事件
public void onClick(View v) {
flag = !flag;//开关打开时关闭,关闭时打开
myHandler.sleep(10);
}
});
}
}

分享到:
相关推荐
•Android---UI篇---Tab Layout(选项卡布局) • •Andorid---UI篇---TableLayout(表格布局) • •Android---UI篇---RelativeLayout(相对布局) • •Android---UI篇---GridView(网格布局) • •Android---UI篇-...
"Android-PickerView"是一个专门用于实现这种功能的库,它提供了多种样式和实现方式,包括弹窗式和XML布局式。下面我们将深入探讨这个库的核心特性、如何使用以及它在实际开发中的价值。 首先,`Android-PickerView...
通过`LayoutManager`,开发者可以选择不同的布局方式,如线性布局(LinearLayoutManager)、网格布局(GridLayoutManager)或瀑布流布局(StaggeredGridLayoutManager)。 `RecyclerView`还有其他关键组件,如`...
此外,新的布局检查器可以实时预览和调试布局,减少了错误的可能性。 此外,Android Studio 4.0对Kotlin的支持进一步加强。Kotlin已成为Android开发的首选语言,4.0版本提供了更完善的Kotlin编码助手,包括智能提示...
这个库专门引入了GridLayout布局管理器,它是Android SDK API Level 14(Ice Cream Sandwich)引入的一个新特性,但在早期版本中无法使用。GridLayout允许开发者创建网格状的布局,其中的视图可以均匀分布或自定义...
安卓下拉刷新开源库对比 目前仅比对github上star数>1500的下拉刷新开源库,在比较完成之后可能会加入其它有代表性的库. 本文的demo可以在github...|Repo|自定义顶部视图|支持的内容布局| |:--:|:--:|:--:|:---:|:--:|:
3. **布局编辑器增强**:此版本的布局编辑器提供了更直观的设计视图,支持拖放组件,实时预览,以及对 ConstraintLayout 和其他布局的深度优化。 4. **性能提升**:通过优化内存管理和编译速度,Android Studio ...
《Android Studio 2021.2.1.15 Windows版:专业级移动应用开发利器》 Android Studio是Google官方推出的集成开发环境(IDE),专为Android应用程序开发设计。这个版本,即“android-studio-2021.2.1.15-windows”,...
在Android开发中,`android-support-v7-appcompat.jar` 和 `android-support-...而`DrawerLayout`则是一种常见的UI布局,为用户提供了便捷的导航方式。理解并熟练运用这些组件,对于开发高质量的Android应用至关重要。
Android Studio 是Google官方推出的Android应用开发集成环境,它提供了丰富的功能和工具,使得开发者能够高效地构建、测试和调试应用程序。在Android Studio中,插件是扩展其功能的重要方式,可以提升开发效率并简化...
在Android开发中,`android-support-design.jar`和`android-support-v7-recyclerview.jar`是两个非常重要的库文件,它们属于Android Support Library的一部分。这个库是由Google提供的,旨在帮助开发者为旧版本的...
此外,ViewPager是一个可滑动查看多个页面的视图,常用于实现滑动切换的Tab布局或图片轮播,也是`android-support-v4`库中的重要组成部分。 接下来是`android-support-v7-appcompat`库,它的主要目的是为了让旧版本...
综上所述,"android-collapse-calendar-view-Android"控件展示了Android UI设计和动画实现的深度,涵盖了视图状态管理、动画效果、布局设计、性能优化等多个方面。对于任何希望提升其Android应用界面交互体验的...
通过阅读和研究这个项目的源码,开发者可以学习到如何处理触摸事件、实现自定义布局,以及如何进行Android应用的模块化设计。同时,这个控件也鼓励了开发者参与到开源社区中,分享和改进代码,共同推动技术的发展。
它通过`LayoutManager`来决定视图的布局方式,如线性布局(LinearLayoutManager)、网格布局(GridLayoutManager)或瀑布流布局(StaggeredGridLayoutManager)。这使得开发者可以根据需要自由设计视图展示效果。 `...
Android-PanesLibrary是一个专为Android平台设计的库,它简化了在平板设备上创建多面板布局的过程。这个库是用Java编程语言实现的,因此标签为"JAVA"。通过使用Android-PanesLibrary,开发者可以轻松地构建出类似...
5. **实时分析工具**:Android Studio包含了一系列性能分析工具,如内存监视器、CPU使用率分析器、布局性能检查器等,帮助开发者定位并优化应用性能问题。 6. **测试支持**:支持单元测试、UI测试和 Espresso 测试...
Android Support Design库是Android开发中的一个重要组件,它为开发者提供了许多现代UI元素和工具,使得在Android应用中实现 Material Design风格变得更加便捷。这个压缩包包含了多个版本的`android-support-design`...
- Layout Editor允许你拖放组件,实时预览布局效果。 - Profiler提供性能监控,包括CPU、内存和网络使用情况。 - Version Control System集成,支持Git和其他VCS,便于团队协作。 - 插件市场提供大量扩展功能,...
这个源码库对于想要深入理解Android布局适配和优化的开发者来说,无疑是一份宝贵的学习资料。 首先,让我们来了解一下官方的Percent Support Library。它是Google为Android提供的一个库,主要包含两个组件:`...