Android 开发笔记___RelativeLayout
Posted alm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 开发笔记___RelativeLayout相关的知识,希望对你有一定的参考价值。
xml文件实现
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:layout_width="match_parent" 3 android:layout_height="500dp" > 4 5 <Button 6 android:id="@+id/btn_center" 7 style="@style/btn_relative" 8 android:layout_centerInParent="true" 9 android:text="我在中间" /> 10 11 <Button 12 android:id="@+id/btn_center_horizontal" 13 style="@style/btn_relative" 14 android:layout_centerHorizontal="true" 15 android:text="我在水平中间" /> 16 17 <Button 18 android:id="@+id/btn_center_vertical" 19 style="@style/btn_relative" 20 android:layout_centerVertical="true" 21 android:text="我在垂直中间" /> 22 23 <Button 24 android:id="@+id/btn_parent_left" 25 style="@style/btn_relative" 26 android:layout_marginTop="100dp" 27 android:layout_alignParentLeft="true" 28 android:text="我跟上级左边对齐" /> 29 30 <Button 31 android:id="@+id/btn_parent_top" 32 style="@style/btn_relative" 33 android:layout_width="120dp" 34 android:layout_alignParentTop="true" 35 android:text="我跟上级顶部对齐" /> 36 37 <Button 38 android:id="@+id/btn_parent_right" 39 style="@style/btn_relative" 40 android:layout_marginTop="100dp" 41 android:layout_alignParentRight="true" 42 android:text="我跟上级右边对齐" /> 43 44 <Button 45 android:id="@+id/btn_parent_bottom" 46 style="@style/btn_relative" 47 android:layout_width="120dp" 48 android:layout_alignParentBottom="true" 49 android:layout_centerHorizontal="true" 50 android:text="我跟上级底部对齐" /> 51 52 <Button 53 android:id="@+id/btn_left_bottom" 54 style="@style/btn_relative" 55 android:layout_toLeftOf="@+id/btn_parent_bottom" 56 android:layout_alignTop="@+id/btn_parent_bottom" 57 android:text="我在底部左边" /> 58 59 <Button 60 android:id="@+id/btn_right_bottom" 61 style="@style/btn_relative" 62 android:layout_toRightOf="@+id/btn_parent_bottom" 63 android:layout_alignBottom="@+id/btn_parent_bottom" 64 android:text="我在底部右边" /> 65 66 <Button 67 android:id="@+id/btn_above_center" 68 style="@style/btn_relative" 69 android:layout_above="@+id/btn_center" 70 android:layout_alignLeft="@+id/btn_center" 71 android:text="我在中间上面" /> 72 73 <Button 74 android:id="@+id/btn_below_center" 75 style="@style/btn_relative" 76 android:layout_below="@+id/btn_center" 77 android:layout_alignRight="@+id/btn_center" 78 android:text="我在中间下面" /> 79 80 </RelativeLayout>
java
1 package com.example.alimjan.hello_world; 2 3 import android.content.Context; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.support.annotation.Nullable; 7 import android.support.v7.app.AppCompatActivity; 8 9 import com.example.alimjan.hello_world.two.class__2_1; 10 11 /** 12 * Created by alimjan on 7/2/2017. 13 */ 14 15 public class class_3_1_1 extends AppCompatActivity{ 16 @Override 17 protected void onCreate(@Nullable Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.code_3_1_1); 20 } 21 22 public static void startHome(Context mContext) { 23 Intent intent = new Intent(mContext, class_3_1_1.class); 24 mContext.startActivity(intent); 25 } 26 }
代码实现
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:id="@+id/rl_content" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" > 5 6 <TextView 7 style="@style/btn_relative" 8 android:layout_alignParentTop="true" 9 android:layout_centerHorizontal="true" 10 android:text="点击按钮添加视图,长按视图删除自身" /> 11 12 <Button 13 android:id="@+id/btn_add_left" 14 style="@style/btn_relative" 15 android:layout_marginTop="80dp" 16 android:layout_centerHorizontal="true" 17 android:text="添加左边视图" /> 18 19 <Button 20 android:id="@+id/btn_add_above" 21 style="@style/btn_relative" 22 android:layout_below="@+id/btn_add_left" 23 android:layout_alignLeft="@+id/btn_add_left" 24 android:text="添加上方视图" /> 25 26 <Button 27 android:id="@+id/btn_add_right" 28 style="@style/btn_relative" 29 android:layout_below="@+id/btn_add_above" 30 android:layout_alignLeft="@+id/btn_add_left" 31 android:text="添加右边视图" /> 32 33 <Button 34 android:id="@+id/btn_add_below" 35 style="@style/btn_relative" 36 android:layout_below="@+id/btn_add_right" 37 android:layout_alignLeft="@+id/btn_add_left" 38 android:text="添加下方视图" /> 39 40 <Button 41 android:id="@+id/btn_add_center" 42 style="@style/btn_relative" 43 android:layout_below="@+id/btn_add_below" 44 android:layout_alignLeft="@+id/btn_add_left" 45 android:text="添加中间视图" /> 46 47 <Button 48 android:id="@+id/btn_add_parent_left" 49 style="@style/btn_relative" 50 android:layout_below="@+id/btn_add_center" 51 android:layout_alignLeft="@+id/btn_add_left" 52 android:text="添加上级左侧对齐视图" /> 53 54 <Button 55 android:id="@+id/btn_add_parent_top" 56 style="@style/btn_relative" 57 android:layout_below="@+id/btn_add_parent_left" 58 android:layout_alignLeft="@+id/btn_add_left" 59 android:text="添加上级顶部对齐视图" /> 60 61 <Button 62 android:id="@+id/btn_add_parent_right" 63 style="@style/btn_relative" 64 android:layout_below="@+id/btn_add_parent_top" 65 android:layout_alignLeft="@+id/btn_add_left" 66 android:text="添加上级右侧对齐视图" /> 67 68 <Button 69 android:id="@+id/btn_add_parent_bottom" 70 style="@style/btn_relative" 71 android:layout_below="@+id/btn_add_parent_right" 72 android:layout_alignLeft="@+id/btn_add_left" 73 android:text="添加上级底部对齐视图" /> 74 75 </RelativeLayout>
1 package com.example.alimjan.hello_world; 2 3 import android.content.Context; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.support.v7.app.AppCompatActivity; 7 import android.view.View; 8 import android.widget.RelativeLayout; 9 10 /** 11 * Created by alimjan on 7/2/2017. 12 */ 13 14 15 public class class_3_1_1_code extends AppCompatActivity implements View.OnClickListener { 16 17 private RelativeLayout rl_content; 18 19 @Override 20 protected void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setContentView(R.layout.code_3_1_1_code); 23 24 rl_content = (RelativeLayout) findViewById(R.id.rl_content); 25 findViewById(R.id.btn_add_left).setOnClickListener(this); 26 findViewById(R.id.btn_add_above).setOnClickListener(this); 27 findViewById(R.id.btn_add_right).setOnClickListener(this); 28 findViewById(R.id.btn_add_below).setOnClickListener(this); 29 findViewById(R.id.btn_add_center).setOnClickListener(this); 30 findViewById(R.id.btn_add_parent_left).setOnClickListener(this); 31 findViewById(R.id.btn_add_parent_top).setOnClickListener(this); 32 findViewById(R.id.btn_add_parent_right).setOnClickListener(this); 33 findViewById(R.id.btn_add_parent_bottom).setOnClickListener(this); 34 } 35 36 @Override 37 public void onClick(View v) { 38 if (v.getId() == R.id.btn_add_left) { 39 addNewView(RelativeLayout.LEFT_OF, RelativeLayout.ALIGN_TOP, v.getId()); 40 } else if (v.getId() == R.id.btn_add_above) { 41 addNewView(RelativeLayout.ABOVE, RelativeLayout.ALIGN_LEFT, v.getId()); 42 } else if (v.getId() == R.id.btn_add_right) { 43 addNewView(RelativeLayout.RIGHT_OF, RelativeLayout.ALIGN_BOTTOM, v.getId()); 44 } else if (v.getId() == R.id.btn_add_below) { 45 addNewView(RelativeLayout.BELOW, RelativeLayout.ALIGN_RIGHT, v.getId()); 46 } else if (v.getId() == R.id.btn_add_center) { 47 addNewView(RelativeLayout.CENTER_IN_PARENT, -1, rl_content.getId()); 48 } else if (v.getId() == R.id.btn_add_parent_left) { 49 addNewView(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.CENTER_VERTICAL, rl_content.getId()); 50 } else if (v.getId() == R.id.btn_add_parent_top) { 51 addNewView(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.CENTER_HORIZONTAL, rl_content.getId()); 52 } else if (v.getId() == R.id.btn_add_parent_right) { 53 addNewView(RelativeLayout.ALIGN_PARENT_RIGHT, -1, rl_content.getId()); 54 } else if (v.getId() == R.id.btn_add_parent_bottom) { 55 addNewView(RelativeLayout.ALIGN_PARENT_BOTTOM, -1, rl_content.getId()); 56 } 57 } 58 59 private void addNewView(int firstAlign, int secondAlign, int referId) { 60 View v = new View(this); 61 v.setBackgroundColor(0xaa66ff66); 62 RelativeLayout.LayoutParams rl_params = new RelativeLayout.LayoutParams(100, 100); 63 rl_params.addRule(firstAlign, referId); 64 if (secondAlign >= 0) { 65 rl_params.addRule(secondAlign, referId); 66 } 67 v.setLayoutParams(rl_params); 68 v.setOnLongClickListener(new View.OnLongClickListener() { 69 @Override 70 public boolean onLongClick(View vv) { 71 rl_content.removeView(vv); 72 return true; 73 } 74 }); 75 rl_content.addView(v); 76 } 77 78 public static void startHome(Context mContext) { 79 Intent intent = new Intent(mContext, class_3_1_1_code.class); 80 mContext.startActivity(intent); 81 } 82 83 }
以上是关于Android 开发笔记___RelativeLayout的主要内容,如果未能解决你的问题,请参考以下文章
Android 开发笔记___textvieww__跑马灯效果