android 屏幕显示
一、像素
android 常用单位 px、dp、sp
dp和sp只与屏幕的物理尺寸有关
dp和sp的区别: sp会随着系统字体的大小而改变,通常用来设置字体大小。dp不会随系统设置的字体改变
dp和px换算:设备的像素密度决定了dp和px的换算, 当密度为2时, 1pd=2px
在布局中,除了文字使用sp单位,其余部分一般使用dp作为单位,在代码中有些函数接收的是px单位。
//设置内部文字与四周空间的间隔
textView.setPadding(px,px,px,px);
转换方法
//分辨率dp转px
public static int dp2px(Context context,float dpValue){
//获取当前手机的像素密度
final float scale=context.getResources().getDisplayMetrics().density;
return (int)(dpValue*scale+0.5f);//四舍五入取整
}
//分辨率px转dp
public static int px2dp(Context context,float pxValue){
final float scale=context.getResources().getDisplayMetrics().density;
return (int)(pxValue/scale+0.5f);
}
二、颜色
1.系统自带颜色

2.自定义颜色
通常由8位 16进制数表示 alpha+RGB(RedGreenBlue)
8位的前两位表示透明度 0是完全透明,f表示完全不透明 ,三四位控制红色深度,五六位控制绿色深度,最后两位控制蓝色深度, 0-f由浅到深。
例如:
6位
0xffffff 表示黑色 0x00ff00表示绿色
8位
0xff00ff00
6位编码看不到背景色。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv1=findViewById(R.id.tv1);
TextView tv2=findViewById(R.id.tv2);
tv1.setBackgroundColor(0x00ff00);
tv2.setBackgroundColor(0xff00ff00);
}

在布局中,使用#RBG可以显示颜色
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#00ff00">
或者
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/colorGreen">

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorGreen">#00FF00</color>
</resources>
代码中
可以使用Color.rgb()或者Color.argb()方法

三、像素
TextView tv=findViewById(R.id.tv1);
int i=MainActivity.getScreenWidth(this);
tv.setText(i+"");
1 获得容器宽度
//获得屏幕宽度,单位px
public static int getScreenWidth(Context context){
//
WindowManager wm= (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm=new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(dm);
return dm.widthPixels;
}
2.获得容器高度
dm.heightPixels;
3.获得像素密度
float类型
dm.density
4.
densityDpi
android 屏幕显示的更多相关文章
- Android应用Activity、Dialog、PopWindow、Toast窗体加入机制及源代码分析
[工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处.尊重劳动成果] 1 背景 之所以写这一篇博客的原因是由于之前有写过一篇<Android应用setCont ...
- 《Android Studio开发实战 从零基础到App上线》资源下载和内容勘误
转载于:https://blog.csdn.net/aqi00/article/details/73065392 资源下载 下面是<Android Studio开发实战 从零基础到App上线&g ...
- 第二篇 界面开发 (Android学习笔记)
第二篇 界面开发 第5章 探索界面UI元素 ●The Android View Class ●△Widget设计步骤 需要修改三个XML,以及一个class: 1)第一个xml是布局XML文件 ...
- Android+Jquery Mobile学习系列(3)-创建Android项目
前两章分别对开发环境和Jquery Mobile基础知识进行了介绍,本章介绍创建一个Android项目,并使用WebView控件显示HTML数据. 首先创建一个Android Application项 ...
- android:screenOrientation的说明 固定屏幕显示方向
Activity在屏幕当中显示的方向.属性值可以是下表中列出的一个值: "unspecified" 默认值,由系统来选择方向.它的使用策略,以及由于选择时特定的上下文环境,可能会因 ...
- android自定义控件一站式入门
自定义控件 Android系统提供了一系列UI相关的类来帮助我们构造app的界面,以及完成交互的处理. 一般的,所有可以在窗口中被展示的UI对象类型,最终都是继承自View的类,这包括展示最终内容的非 ...
- Android中使用ViewFlipper实现屏幕页面切换(关于坐标轴的问题已补充更改)
屏幕切换指的是在同一个Activity内屏幕间的切换,ViewFlipper继承了Framelayout类,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果.如 ...
- Android中的沉浸式状态栏效果
无意间了解到沉浸式状态栏,感觉贼拉的高大上,于是就是试着去了解一下,就有了这篇文章.下面就来了解一下啥叫沉浸式状态栏.传统的手机状态栏是呈现出黑色条状的,有的和手机主界面有很明显的区别.这一样就在一定 ...
- Xamarin.Android之Fragment Walkthrough
利用Fragment设计能够兼容不同屏幕的应用 这里我们先围观下最后的成果图,给读者打打气: 普通手机上显示的结果: 在平板上显示的结果: 笔者要郑重声明下,虽然看似是两种不同的显示效果,但是同一个应 ...
随机推荐
- Struts1之编码问题
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding=& ...
- P3539 [POI2012]ROZ-Fibonacci Representation
题目描述 The Fibonacci sequence is a sequence of integers, called Fibonacci numbers, defined as follows: ...
- [洛谷P1131][ZJOI2007]时态同步
题目大意:给你一棵树,每条边有边权,要求增加一些边的边权,使得根节点到每个叶子节点的距离相等,求出最少共增加多少边权. 题解:树形$DP$,对于每个点,如果它到它的子树中的叶子节点距离不同,一定要在这 ...
- COGS1752. [BOI2007]摩基亚Mokia CDQ
CDQ的板子题 #include<cstdio> #include<cstring> #include<iostream> #include<algorith ...
- CentOS ninimal 安装后没有桌面-yellowcong
昨天,安装Centos后,发现没有桌面,主要是没有安装桌面环境导致 的这个问题,我们需要做的第一步是,安装一个桌面(GNOME Desktop,命令:yum groupinstall -y " ...
- (转)用python实现抓取网页、模拟登陆
涉及一系列内容,部分已在前面转载,仍转自crifan: http://www.crifan.com/how_to_use_some_language_python_csharp_to_implemen ...
- HTML5学习之新增标签
转自:http://www.cnblogs.com/fly_dragon/archive/2012/05/25/2516142.html 作者:FlyDragon 一.引言 在本节中,笔者将向大家讲述 ...
- Spring 学习笔记(三)之注解
一.在classpath下扫描组件 •组件扫描(component scanning): Spring 能够从 classpath 下自动扫描, 侦测和实例化具有特定注解的组件. •特定组件包括: ...
- (转)C/S 与 B/S 区别
感谢:http://www.cnblogs.com/xiaoshuai/archive/2010/05/25/1743741.html C/S结构,即Client/Server(客户机/服务器)结构, ...
- IntelliJ 创建main函数快捷
今天偶然发现了IntelliJ中 创建main函数的快捷键,依次还有for循环,System.out.println(); 在编写代码的时候直接输入psv就会看到一个psvm的提示,此时点击tab键一 ...