北京最新头条新闻,镜像网站做优化,学编程后悔死了,wordpress文章样式一、设置视图宽高
在Android开发中#xff0c;可以使用LayoutParams类来设置视图#xff08;View#xff09;的宽度和高度。LayoutParams是一个用于布局的参数类#xff0c;用于指定视图在父容器中的位置和大小。 下面是设置视图宽度和高度的示例代码#xff1a;
…一、设置视图宽高
在Android开发中可以使用LayoutParams类来设置视图View的宽度和高度。LayoutParams是一个用于布局的参数类用于指定视图在父容器中的位置和大小。 下面是设置视图宽度和高度的示例代码
// 创建一个LayoutParams对象
LayoutParams layoutParams new LayoutParams(width, height);// 设置视图的LayoutParams参数
view.setLayoutParams(layoutParams); 在上述代码中width和height分别代表要设置的视图的宽度和高度可以是具体的像素值也可以使用特殊常量进行设置如LayoutParams.WRAP_CONTENT表示自适应内容大小LayoutParams.MATCH_PARENT表示填充父容器。
例如如果要将视图的宽度设置为200像素高度设置为300像素可以使用以下代码
// 创建一个LayoutParams对象设置宽度为200像素高度为300像素
LayoutParams layoutParams new LayoutParams(200, 300);// 设置视图的LayoutParams参数
view.setLayoutParams(layoutParams);
还可以通过在xml文件中android:layout_width设置视图宽度通过android:layout_height设置视图的高度。
通过以上方式你可以根据需求设置视图的宽度和高度。
第一步创建ActivitySetBorderActivity.java
第二步 在activity_set_border.xml中分别使用LayoutParams.MATCH_PARENTLayoutParams.WRAP_CONTENT和固定长度dp
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_marginTop5dpandroid:textwrap_content是包裹内容大小android:textColor#000000android:background#999999android:textSize18sp/TextViewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginTop5dpandroid:textmatch_parent是填充父容器android:textColor#000000android:background#999999android:textSize18sp/TextViewandroid:layout_width300dpandroid:layout_heightwrap_contentandroid:layout_marginTop5dpandroid:text可以选择固定的长度android:textColor#000000android:background#999999android:textSize18sp//LinearLayout
效果如此
我们也可以在java代码中实现
第一步在xml文件中添加(需设置为wrap_content)
TextViewandroid:idid/set_border_javaandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_marginTop5dpandroid:text在java代码中实现android:textColor#000000android:background#999999android:textSize18sp/第二步在java代码中
package com.example.module1;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.TextView;public class SetBorderActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_set_border);TextView border_java findViewById(R.id.set_border_java);//获取布局参数ViewGroup.LayoutParams params border_java.getLayoutParams();params.width0;//设置布局参数border_java.setLayoutParams(params);}
}
应为在Java代码中默认的单位是px所以我们需要工具类将dp转换为px
首先我们创建一个Utils和一个Utils类 其中Utils.java中
package com.example.module1.Utils;import android.content.Context;public class Utils {//根据手机的分辨率从dp的单位转成为px(像素)public static int dip2px(Context context,float dpValue){//获取手机的像素密度(1个px对应几个px)float scale context.getResources().getDisplayMetrics().density;return (int) (dpValue*scale0.5f);}
}
在SetBorderActivity.java中
package com.example.module1;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.TextView;import com.example.module1.Utils.Utils;public class SetBorderActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_set_border);TextView border_java findViewById(R.id.set_border_java);//获取布局参数ViewGroup.LayoutParams params border_java.getLayoutParams();//默认单位px单位需要把dp转化为px;params.width Utils.dip2px(this,300);//设置布局参数border_java.setLayoutParams(params);}
}
最后修改清单文件
?xml version1.0 encodingutf-8?
manifest xmlns:androidhttp://schemas.android.com/apk/res/androidapplicationandroid:allowBackuptrueandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:roundIconmipmap/ic_launcher_roundandroid:supportsRtltrueandroid:themestyle/Theme.MyApplicationactivityandroid:name.SetBorderActivityandroid:exportedtrueintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity/application/manifest
运行结果为
设置视图的间距
设置视图间距有两种方式 采用layout_margin属性它指定了当前视图与周围平级视图之间的距离。包括layout_margin,layout_marginLeft,layout_marginTop,layout_marginRight,layout_marginBottom 采用padding属性它指定了当前视图与内部下级视图之间的距离。包括paddingpaddingLeftpaddingToppaddingRightpaddingBottom
第一步创建SetMarginActivity.java 第二步在对应的xml文件中
?xml version1.0 encodingutf-8?
!--最外层的布局颜色为蓝色--
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_height300dpandroid:orientationverticalandroid:background#00AAFF
!--中间层的布局为黄色 --LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:layout_margin20dpandroid:background#FFFF99android:padding60dpViewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:background#FF0000/View/LinearLayout/LinearLayout打开Design:
其中蓝色的宽度为20dp黄色的宽度为60dp。
设置视图的对其方式
设置视图的对齐方式有两种途径
采用layout_gravity属性他指定了当前视图相对于上级视图的对齐方式。采用gravity属性它指定了下级视图相对于当前视图的对其方式。 layout_gravity与gravity的取值包括lefttoprightbottom还可以用竖线连接各取值例如“left|top”表示即靠左又靠上也就是朝左上角对齐。
第一步创建Activity 为SetGravityActivity.java 第二部在对应的xml文件中
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_height300dpandroid:orientationhorizontalandroid:background#ffff99
!-- 第一个子布局的颜色为红色它在上级视图中朝下对其它的下级视图则靠左对其--LinearLayoutandroid:layout_width0dpandroid:layout_height200dpandroid:layout_weight1android:background#ff0000android:layout_margin10dpandroid:padding10dpandroid:layout_gravitybottom
!-- 内部视图的宽度和高度都是100dp且背景为青色--Viewandroid:layout_width100dpandroid:layout_height100dpandroid:background#00ffff/View/LinearLayoutLinearLayoutandroid:layout_width0dpandroid:layout_height200dpandroid:layout_weight1android:background#ff0000android:layout_margin10dpandroid:padding10dpandroid:layout_gravitytopandroid:gravityrightViewandroid:layout_width100dpandroid:layout_height100dpandroid:background#00ffff/View/LinearLayout/LinearLayout打开Design