android代码构建布局时设置宽高的单位为像素(图解)

本文总结了如何在Android中通过代码创建布局并设置以像素为单位的宽高。通过实例展示了在不同分辨率设备上,如魅族MX(1080*1920)和480*800分辨率手机上,布局宽度如何接近屏幕边缘,以体现代码设置像素单位的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android构建布局时一般通用xml布局来生成,但有时还是需要代码来生成布局控件,以达到不同的效果。以前用过代码生成布局,现在写个总结,方便新手查看。

这里代码来生成布局控件设置的宽高的单位为:像素。

  像素即pixel,简写为px,我们平时说的手机的400*800分辨率,这里400*800的单位就是像素。常见的分辨率有如(MX)640*960,小米2S:720*1280,三星galaxy s4:1080*1920

  回到正题,以下是我测试几台手机得到的图片,先看代码:


package com.example.dptest;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.util.DisplayMetrics;
import android.view.Menu;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.TextView;

public class MainActivity extends Activity {

	private RelativeLayout rl_code;
	private TextView tv_diaplay_info;
	private Activity context;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		context = MainActivity.this;
		setContentView(R.layout.activity_main);
		
		rl_code = (RelativeLayout) findViewById(R.id.relativeLayout_code);
		tv_diaplay_info = (TextView) findViewById(R.id.tv_diaplay_info);
		
		//生成代码
		RelativeLayout rl_code2 = new RelativeLayout(context);
		LayoutParams params = new LayoutParams(630,100);//魅族的分辨率率为:640*960,这里宽故意设置成630以方便看出差别
		rl_code2.setLayoutParams(params);
		rl_code2.setBackgroundColor(Color.YELLOW);
		
		rl_code.addView(rl_code2);//添加
		
		
		//以下只是显示当前的机型与分辨率,方便查看图片
		DisplayMetrics metrics = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(metrics);
		String info = "当前机型:魅族MX \nwidthPixels(像素宽):"+metrics.widthPixels+"\nheightPixels(像素高):"+metrics.heightPixels;
		tv_diaplay_info.setText(info);
		
	} 
}


布局文件activity_main.xml里就一个ReletiveLayout,看代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/relativeLayout_code"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

</RelativeLayout>

魅族MX测试效果图如下:



由图片可以看出相对布局(图中黄色的小块)的宽接近屏幕的边缘(因为我在代码里设置少了10px),说明代码生成控件时,其宽高的单位为像素px


下面上传在其它分辨率的手机测试时的图片,布局的宽都比原手机分辨率小10px,方便看出差别。


下图手机分辨率为:1080*1920



下图分辨率手机为480*800




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值