单帧布局是很简单的,在这种布局下每个添加的子控件都会被放在布局的左上角,并覆盖在前
一个子控件的上层,即帧布局中的每一个组件都代表一个画面,默认以屏幕左上角作为( 0,0 )
坐标,按组件定义的先后顺序依次逐屏显示, 后面出现的会覆盖前面的画面 。
用该布局可以实现动画效果 。下面,我们用三幅图片实现动画效果。
第一步:编写 framelayout.xml 文件
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:id = "@+id/frame" > </FrameLayout>第二步:通过编写activity 实现FrameLayout的
public class Test001Activity extends Activity { FrameLayout frame = null; private boolean flag = true; class MyHandler extends Handler{ int i = 0 ; public void handleMessage(Message msg){ i++; show( i % 3 ); show( i % 3 ); sleep(50); } public void sleep(long delayMillis) { // TODO Auto-generated method stub if(flag ){ sendMessageDelayed(obtainMessage(0), delayMillis); } } private void show(int j) { // TODO Auto-generated method stub Drawable a = getResources().getDrawable(R.drawable.a); Drawable b = getResources().getDrawable(R.drawable.b); Drawable c = getResources().getDrawable(R.drawable.c); switch (j){ case 0: frame.setForeground(a); break; case 1: frame.setForeground(b); break; case 2: frame.setForeground(c); break; } } } /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.framelayout); frame = (FrameLayout)findViewById(R.id.frame); final MyHandler myHandler = new MyHandler(); myHandler.sleep(50); frame.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub flag =! flag; myHandler.sleep(50); } }); } }
参考:http://simpleframework.net/blog/v/105754.html
整个android的布局和视图可以参考这篇博文点击打开链接。写的非常全!