• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android中dip、dp、sp、pt和px的区别,androiddip

Android中dip、dp、sp、pt和px的区别,androiddip

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android dp dip,android dip转px,android dip,px2dip,dip转px等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android中dip、dp、sp、pt和px的区别,androiddip


1、概述

        过去,程序员通常以像素为单位设计计算机用户界面。例如:图片大小为80×32像素。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能会

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="3dip">


    <!--0固定1可以扩展-->

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:numColumns="8"
        android:shrinkColumns="0"
        android:stretchColumns="1">

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/label"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="请输入用户名:" />
            <!-- 这个EditText放置在上边id为label的TextView的下边 -->
            <EditText
                android:id="@+id/username"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/label"
                android:background="@android:drawable/editbox_background" />

        </TableRow>


        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="match_parent">


        </TableRow>


    </TableLayout>


    <Button android:layout_width="800px"
        android:layout_height="200px"
        android:text="800px"/>

    <Button android:layout_width="400dip"
        android:layout_height="100dip"
        android:text="400dip"/>
</LinearLayout>
package com.example.yanlei.my2;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView pTextView=(TextView)findViewById(R.id.label);

        // 获取屏幕密度(方法1)
        int screenWidth  = getWindowManager().getDefaultDisplay().getWidth();       // 屏幕宽(像素,如:480px)
        int screenHeight = getWindowManager().getDefaultDisplay().getHeight();      // 屏幕高(像素,如:800p)

        String str=  "  getDefaultDisplay ,screenWidth=" + screenWidth + "; screenHeight=" + screenHeight+"\n";

        // 获取屏幕密度(方法2)
        DisplayMetrics dm = new DisplayMetrics();
        dm = getResources().getDisplayMetrics();

        float density  = dm.density;        // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)
        int densityDPI = dm.densityDpi;     // 屏幕密度(每寸像素:120/160/240/320)
        float xdpi = dm.xdpi;
        float ydpi = dm.ydpi;

        str=str + "  DisplayMetrics, xdpi=" + xdpi + "; ydpi=" + ydpi+"\n";
        str=str + "  DisplayMetrics, density=" + density + "; densityDPI=" + densityDPI+"\n";

        screenWidth  = dm.widthPixels;      // 屏幕宽(像素,如:480px)
        screenHeight = dm.heightPixels;     // 屏幕高(像素,如:800px)

        str=str  + "  DisplayMetrics screenWidth=" + screenWidth + "; screenHeight=" + screenHeight+"\n";

        // 获取屏幕密度(方法3)
        dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);

        density  = dm.density;      // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)
        densityDPI = dm.densityDpi;     // 屏幕密度(每寸像素:120/160/240/320)
        xdpi = dm.xdpi;
        ydpi = dm.ydpi;

        str=str +  "  DisplayMetrics xdpi=" + xdpi + "; ydpi=" + ydpi+"\n";
        str=str  + "  DisplayMetrics, density=" + density + "; densityDPI=" + densityDPI+"\n";

        int screenWidthDip = dm.widthPixels;        // 屏幕宽(dip,如:320dip)
        int screenHeightDip = dm.heightPixels;      // 屏幕宽(dip,如:533dip)

        str=str + "  DisplayMetrics screenWidthDip=" + screenWidthDip + "; screenHeightDip=" + screenHeightDip+"\n";

        screenWidth  = (int)(dm.widthPixels * density + 0.5f);      // 屏幕宽(px,如:480px)
        screenHeight = (int)(dm.heightPixels * density + 0.5f);     // 屏幕高(px,如:800px)

        str=str + "  DisplayMetrics screenWidth=" + screenWidth + "; screenHeight=" + screenHeight+"\n";
        pTextView.setText(str);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on t



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android中dip、dp、sp、pt和px的区别,androiddip
  • android:px,dp(dip),sp的区别

相关文章

  • 2017-05-26Weex 环境搭建(win7),weex环境搭建win7
  • 2017-05-26改变RadioButton的文字位置以及距离,radiobutton文字
  • 2017-05-26Android新手入门2016(13)--阻塞对话框PopupWindow
  • 2017-05-228.3.6 Paint API之—— Xfermode与PorterDuff详解(三)
  • 2017-05-26Android基于监听的事件处理机制
  • 2017-05-26初识android中的动画,初识android动画
  • 2017-05-26Android Support Library 之 Toolbar
  • 2017-05-26MTK处理器手机 解锁Bootloader 教程,mtkbootloader
  • 2017-05-26Android系统架构,android系统结构
  • 2017-05-26Android学习笔记(32):通知推送Notification浅析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android下雪动画的实现
    • Android开发:14个解决实际问题的代码片段
    • Android学习笔记(28):三种选择器DatePicker_TimePicker_NumberPicker剖析
    • Linux内核系列—7.操作系统开发之中断和异常,linux内核
    • KeyEvent机制(按键),keyevent机制按键
    • 360多渠道打包,360打包
    • 利用散列连接从DB2通用数据库获得最佳性能
    • 阅读《Android 从入门到精通》(29)——LinearLayout 等四类方法
    • 基于android-async-http的android服务,android-async-http
    • 一个帖子学会Android开发四大组件,android四大

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有