一、自定义控件的单位和尺寸 1.一般在PC上会使用px(像素)和pt(磅)作为单位,但是在手机上由于不断地会更新手机屏幕的分辨率,因此使用这两个单位不再那么合适。可能在一部低分
一、自定义控件的单位和尺寸
1.一般在PC上会使用px(像素)和pt(磅)作为单位,但是在手机上由于不断地会更新手机屏幕的分辨率,因此使用这两个单位不再那么合适。可能在一部低分辨率手机上,一个控件占据整块屏幕,而在高分辨率的手机屏幕上连一半都占不到。我们先新建一个工程UISizeTest,然后修改activity_main.xml
<RelativeLayout xmlns:Android="Http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/button"
android:layout_width="200px"
android:layout_height="wrap_content"
android:text="Button"
/>
</RelativeLayout>
既然pt和px不好用,我们可以使用dp和sp来进行设计
二、dp和sp
1.dp是密度无关像素的意思,sp是可伸缩像素的意思,dpi就是屏幕密度,也就是比如一个2*3英寸的屏幕分辨率为320*480像素,那么屏幕的密度就是160dip,代表屏幕每英寸所含有的像素数。
2.使用代码来测量手机的屏幕密度值
package com.example.uisizetest;
import android.app.Activity;
import android.util.Log;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
float xdpi = getResources().getDisplayMetrics().xdpi;
float ydpi = getResources().getDisplayMetrics().ydpi;
Log.d("MainActivity","xdpi is "+xdpi);
Log.d("MainActivity","ydpi is "+ydpi);
}
}
根据Android的规定在160dpi的屏幕上,1dp就等于1px,而在320dpi的屏幕上1dp就等于2px,这样就能保证控件在不用密度的屏幕上显示的比例是一致的。
总结:在Android开发中,如果控件需要指定一个固定值,则使用dp来作为单位,如果指定文字的大小那么使用sp作为单位。
三、源码:
项目地址
https://GitHub.com/ruigege66/Android/tree/master/UISizeTest
您可能感兴趣的文章:Android自定义控件实现时钟效果Android自定义View实现点赞控件android自定义圆形倒计时显示控件Android自定义圆环倒计时控件android自定义WaveView水波纹控件Android自定义控件仿iOS下拉回弹效果Android自定义控件仿ioS滑块SwitchButtonAndroid自定义控件实现折线图
--结束END--
本文标题: Android自定义控件单位尺寸实现代码
本文链接: https://www.lsjlt.com/news/29867.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0