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设计能够兼容不同屏幕的应用 这里我们先围观下最后的成果图,给读者打打气: 普通手机上显示的结果: 在平板上显示的结果: 笔者要郑重声明下,虽然看似是两种不同的显示效果,但是同一个应 ...
随机推荐
- Hibernate关联映射之_一对多
domain: package org.zln.hibernate.domain; import java.util.Set; /** * 部门Domain对象 * Created by sherry ...
- 2017 Multi-University Training Contest - Team 4 phone call(树+lca+并查集)
题解: (并查集处理往上跳的时候,一定要先让u,v往上跳到并查集的祖先,不然会wa掉) 代码如下: #include <iostream> #include <algorithm&g ...
- hihocoder 1465 循环串匹配问题(后缀自动机)
后缀自动机感觉好万能 tries图和ac自动机能做的,后缀自动机很多也都可以做 这里的循环匹配则是后缀自动机能做的另一个神奇功能 循环匹配意思就是S是abba, T是abb 问'abb', 'bba' ...
- javascript prototype原型链的原理
javascript prototype原型链的原理 说到prototype,就不得不先说下new的过程. 我们先看看这样一段代码: <script type="text/javasc ...
- idea初学建立maven项目报错
原理,是因为你没把新创建好的maven项目给设置成一个可被tomcat部署的web项目 参考此博文,讲的非常详细: 归根到底是因为web项目的部署问题: 解决方案:在创建的到时候,idea下部会提示是 ...
- namesilo注册域名用来做域名邮箱
重要的话说三遍: (一定不要再国内注册域名,不要买国内的空间) (一定不要再国内注册域名,不要买国内的空间) (一定不要再国内注册域名,不要买国内的空间) 使用的是腾讯企业邮箱,有一个缺点:不支持自定 ...
- lwIP内存管理机制
lwip的内存管理机制,我们以enet_lwip这个例程为例. 在使用lwip的时候,我们可以使用两种形式的内存,一种是heap(mem.c文件-mem_malloc()),一种是pool(memp. ...
- css中clip:rect矩形剪裁功能
一.示例 img { position:absolute; clip:rect(30px,200px,200px,20px); } 二.理解 clip 属性剪裁绝对定位元素. clip:rect矩形剪 ...
- Lucene6去掉了Filter但是可以用BooleanQuery实现Filter查询
Lucene在6.0版本之后彻底废除了Filter的使用,采用BooleanQuery来实现Filter的功能,核心代码如下: TermQuery termQuery = new TermQuery( ...
- abstract 与interface区别
1.abstract用于修饰类,interface用于修饰接口 2.抽象类中可以有抽象和非抽象方法,接口中只能定义抽象方法,不能有实现 3.抽象类必须被继承,interface被实现 4.抽象类有构造 ...