Android屏幕适配和文字屏幕适配

http://blog.sina.com.cn/s/blog_9996c67e0101euwd.html

最近在一个项目中要实现屏幕适配平板和手机等不同的型号,而蛋疼的美工给了一套图,而且这些图纸有在1280×800的平板上才能布局正常,所以没办法,只能自己一步一步的写了,终于让俺在度娘和谷哥上找到了类似的解决办法,现将我自己实现的方法粘贴出来:

首先俺有一个activity_index.xml文件:

    <xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/ergetiandi_back1" >

        android:id="@+id/rel_title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" >

            android:id="@+id/er_ge_tian_di"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="60dip"
            android:layout_marginTop="80dip"
            android:background="@drawable/select_go_back_press" />

            android:id="@+id/upper_paper"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="620dip"
            android:layout_marginTop="50dip"
            android:background="@drawable/select_pager_up_press" />

            android:id="@+id/next_paper"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="620dip"
            android:layout_marginTop="50dip"
            android:background="@drawable/select_pager_down_press" />

            android:id="@+id/song"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="160dip"
            android:layout_marginTop="160dip"
            android:background="@drawable/select_song_press" />

            android:id="@+id/accompany"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/song"
            android:layout_marginLeft="21dp"
            android:layout_toRightOf="@+id/song"
            android:background="@drawable/select_accompany_press"
            />

        android:id="@+id/gridView1"
        android:layout_width="fill_parent"
        android:layout_height="450dip"
        android:layout_below="@+id/rel_title"
        android:layout_marginTop="60dip"
        android:numColumns="5"
         >
    <xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/ergetiandi_back1" >

        android:id="@+id/rel_title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" >

            android:id="@+id/er_ge_tian_di"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="60dip"
            android:layout_marginTop="80dip"
            android:background="@drawable/select_go_back_press" />

            android:id="@+id/upper_paper"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="620dip"
            android:layout_marginTop="50dip"
            android:background="@drawable/select_pager_up_press" />

            android:id="@+id/next_paper"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="620dip"
            android:layout_marginTop="50dip"
            android:background="@drawable/select_pager_down_press" />

            android:id="@+id/song"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="160dip"
            android:layout_marginTop="160dip"
            android:background="@drawable/select_song_press" />

            android:id="@+id/accompany"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/song"
            android:layout_marginLeft="21dp"
            android:layout_toRightOf="@+id/song"
            android:background="@drawable/select_accompany_press"
            />

        android:id="@+id/gridView1"
        android:layout_width="fill_parent"
        android:layout_height="450dip"
        android:layout_below="@+id/rel_title"
        android:layout_marginTop="60dip"
        android:numColumns="5"
         >

   

然后在类文件中对应的填写xml对应的值就行:

private void getFindViews() {
upper_paper = (Button) findViewById(R.id.upper_paper);
next_paper = (Button) findViewById(R.id.next_paper);
btnBack = (Button) this.findViewById(R.id.er_ge_tian_di);
btnSong = (Button) this.findViewById(R.id.song);
btnAccompany = (Button) this.findViewById(R.id.accompany);

RelativeLayout.LayoutParams er_ge_tian_diParams = new RelativeLayout.LayoutParams((int) (60 * Config.WITH_RATE), (int) (60 * Config.HEIGHT_RATE));
er_ge_tian_diParams.leftMargin = (int)(60 * Config.WITH_RATE);
er_ge_tian_diParams.topMargin = (int)(80 * Config.HEIGHT_RATE);
btnBack.setLayoutParams(er_ge_tian_diParams);

RelativeLayout.LayoutParams next_paperParams=new RelativeLayout.LayoutParams((int) (130 * Config.WITH_RATE), (int) (55 * Config.HEIGHT_RATE));
next_paperParams.leftMargin=(int)(620 * Config.WITH_RATE);
next_paperParams.topMargin=(int)(50 * Config.HEIGHT_RATE);
next_paper.setLayoutParams(next_paperParams);

RelativeLayout.LayoutParams upper_paperParams=new RelativeLayout.LayoutParams((int) (130 * Config.WITH_RATE), (int) (55 * Config.HEIGHT_RATE));
upper_paperParams.leftMargin=(int)(620 * Config.WITH_RATE);
upper_paperParams.topMargin=(int)(50 * Config.HEIGHT_RATE);
upper_paper.setLayoutParams(upper_paperParams);

RelativeLayout.LayoutParams songParams=new RelativeLayout.LayoutParams((int) (60 * Config.WITH_RATE), (int) (30 * Config.HEIGHT_RATE));
songParams.leftMargin=(int)(160 * Config.WITH_RATE);
songParams.topMargin=(int)(160 * Config.HEIGHT_RATE);
btnSong.setLayoutParams(songParams);

RelativeLayout.LayoutParams accompanyParams=new RelativeLayout.LayoutParams((int) (60 * Config.WITH_RATE), (int) (30 * Config.HEIGHT_RATE));
accompanyParams.leftMargin=(int)(21 * Config.WITH_RATE);
accompanyParams.addRule(RelativeLayout.RIGHT_OF, R.id.song);
accompanyParams.addRule(RelativeLayout.ALIGN_BOTTOM, R.id.song);
btnAccompany.setLayoutParams(accompanyParams);

RelativeLayout.LayoutParams gridView1Params=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, (int) (450 * Config.HEIGHT_RATE));
gridView1Params.topMargin=(int)(60 * Config.HEIGHT_RATE);
gridView1Params.addRule(RelativeLayout.BELOW, R.id.rel_title);
mGridView.setLayoutParams(gridView1Params);
private void getFindViews() {
upper_paper = (Button) findViewById(R.id.upper_paper);
next_paper = (Button) findViewById(R.id.next_paper);
btnBack = (Button) this.findViewById(R.id.er_ge_tian_di);
btnSong = (Button) this.findViewById(R.id.song);
btnAccompany = (Button) this.findViewById(R.id.accompany);

RelativeLayout.LayoutParams er_ge_tian_diParams = new RelativeLayout.LayoutParams((int) (60 * Config.WITH_RATE), (int) (60 * Config.HEIGHT_RATE));
er_ge_tian_diParams.leftMargin = (int)(60 * Config.WITH_RATE);
er_ge_tian_diParams.topMargin = (int)(80 * Config.HEIGHT_RATE);
btnBack.setLayoutParams(er_ge_tian_diParams);

RelativeLayout.LayoutParams next_paperParams=new RelativeLayout.LayoutParams((int) (130 * Config.WITH_RATE), (int) (55 * Config.HEIGHT_RATE));
next_paperParams.leftMargin=(int)(620 * Config.WITH_RATE);
next_paperParams.topMargin=(int)(50 * Config.HEIGHT_RATE);
next_paper.setLayoutParams(next_paperParams);

RelativeLayout.LayoutParams upper_paperParams=new RelativeLayout.LayoutParams((int) (130 * Config.WITH_RATE), (int) (55 * Config.HEIGHT_RATE));
upper_paperParams.leftMargin=(int)(620 * Config.WITH_RATE);
upper_paperParams.topMargin=(int)(50 * Config.HEIGHT_RATE);
upper_paper.setLayoutParams(upper_paperParams);

RelativeLayout.LayoutParams songParams=new RelativeLayout.LayoutParams((int) (60 * Config.WITH_RATE), (int) (30 * Config.HEIGHT_RATE));
songParams.leftMargin=(int)(160 * Config.WITH_RATE);
songParams.topMargin=(int)(160 * Config.HEIGHT_RATE);
btnSong.setLayoutParams(songParams);

RelativeLayout.LayoutParams accompanyParams=new RelativeLayout.LayoutParams((int) (60 * Config.WITH_RATE), (int) (30 * Config.HEIGHT_RATE));
accompanyParams.leftMargin=(int)(21 * Config.WITH_RATE);
accompanyParams.addRule(RelativeLayout.RIGHT_OF, R.id.song);
accompanyParams.addRule(RelativeLayout.ALIGN_BOTTOM, R.id.song);
btnAccompany.setLayoutParams(accompanyParams);

RelativeLayout.LayoutParams gridView1Params=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, (int) (450 * Config.HEIGHT_RATE));
gridView1Params.topMargin=(int)(60 * Config.HEIGHT_RATE);
gridView1Params.addRule(RelativeLayout.BELOW, R.id.rel_title);
mGridView.setLayoutParams(gridView1Params);

Android屏幕适配和文字屏幕适配

时间: 2024-10-30 05:33:11

Android屏幕适配和文字屏幕适配的相关文章

Android 浅谈 设计与屏幕适配

extends: http://www.ui.cn/detail/45435.html http://www.2cto.com/kf/201501/372699.html http://www.cnblogs.com/bluestorm/p/3640786.html http://www.shejidaren.com/android%E7%B3%BB%E7%BB%9F%E5%AD%97%E4%BD%93%E8%A7%84%E8%8C%83%E4%B8%8E%E5%BA%94%E7%94%A8%E

Android学习笔记:App屏幕适配相关

一谈到Android开发,就少不了拉扯到屏幕适配问题,为什么要屏幕适配?原因很简单,因为Android手机相关设备款式型号太多太多(据统计,2012年支持Android的设备共有3997种,2013年达到11868种,到2014年时高达18796种,现在会更多),不同的设置屏幕大小不同,如果我们用单一的方式去就对待所有的手机,那结果可想而知!所以我们需要针对不同设备做屏幕适配. 谈到尺寸,我们就要涉及到相关的概念: 1,屏幕尺寸:指设备屏幕对角线的长度,一般以英寸(inch)为单位, 2,屏幕分

Android 尺寸单位转换和屏幕适配相关

一:Android 屏幕适配 众所周知,Android机型尺寸各种各样,于是屏幕适配就成了Android开发中很重要的一环.Android屏幕适配可能一些开发者都会遇到这样的问题,今天就来分享下屏幕适配,其实Android屏幕适配也可以很简单. 基本概念 Android屏幕适配必须要理解的一些概念: px 是英文单词pixel的缩写,意为像素,屏幕上的点.我们通常所说的分辨率如480X800就是指的像素. 在设计领域中,像素是用来计算数码影像的最小单位.计算机中显示的图像并非连续的线条组成,而是

Android 适配不同分辨率屏幕

为了查看方便,特意贴一段 Google API 文档:http://developer.Android.com/intl/zh-cn/guide/practices/screens_support.html 文章末尾会附上该篇文档. 近期做些关于手机适配的工作. 下面来总结一下,希望可以对大家有帮助,本人能力有限,如果有解释失误的地方,请务必帮忙指出,谢谢. 首先引入几个概念. PPI : Pixels Per Inch的缩写简称,表示的是每英寸显示屏所拥有的像素(pixel)数目. DPI :

New UI-获取手机屏幕尺寸与分辨率,屏幕适配,横竖屏问题

New UI-获取手机屏幕尺寸与常用分辨率,屏幕适配,横竖屏问题 --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http:/

iOS 的 APP 在系统中如何适配不同的屏幕的尺寸

2007年,初代iPhone发布,屏幕的宽高是 320 x 480 像素.下文也是按照宽度,高度的顺序排列.这个分辨率一直到iPhone 3GS也保持不变. 那时编写iOS的App(应用程序),只支持绝对定位.比如一个按钮(x, y, width, height) = (20, 30, 40, 50),就表示它的宽度是40像素,高度是50像素,放在(20, 30)像素的位置. iPhone 4 2010年,iPhone 4发布,率先采用Retina显示屏,在屏幕的物理尺寸不变的情况下,像素成倍增

Qt移动应用开发(一):适配不同的屏幕

Qt移动应用开发(一):适配不同的屏幕 到目前为止,Qt5.3已经出现很长一段时间了,并且已经有一些应用使用Qt进行构建了,我自己也完成了第一款使用Qt构建的手机游戏<吃药了>.那么接下来的几篇文章主要向大家分享我是怎样使用Qt进行移动开发的.Qt移动应用开发分为多篇博客文章,每一篇文章都力求精简不罗嗦,力求为大家提供一个快捷的参考.我在这里也主要将使用Qt制作<吃药了>的方法技巧一一分享给大家. 说到移动应用开发,第一想到的就是Android了,的确.Digia其实在为Qt制定向

1.3.2 适配不同的屏幕

Android用尺寸和分辨率这两种常规属性对不同的设备屏幕加以分类.我们应该想到自己的app会被安装在各种屏幕尺寸和分辨率的设备中.这样,app中就应该包含一些可选资源,针对不同的屏幕尺寸和分辨率,来优化其外观. 有4种普遍尺寸:小(small),普通(normal),大(large),超大(xlarge) 4种普遍分辨率:低精度(ldpi), 中精度(mdpi), 高精度(hdpi), 超高精度(xhdpi) 声明针对不同屏幕所用的layout和bitmap,必须把这些可选资源放置在独立的目录

iOS:界面适配(三)--iPhone不同机型或设备不同尺寸适配(屏幕适配)和系统适配

对于不同苹果设备,各个参数查看<iOS:机型参数.sdk.xcode各版本>.        机型变化 坐标:表示屏幕物理尺寸大小,坐标变大了,表示机器屏幕尺寸变大了: 像素:表示屏幕图片的大小,跟坐标之间有个对应关系,比如1:1或1:2等: ppi:代表屏幕物理大小到图片大小的比例值,如果ppi不变,则坐标和像素的比例不会变: iPhone 4以前 iPhone.iPhone3/3G机型未采用retina,坐标是320 x 480,屏幕像素320 x 480 ,他们一一对应,1:1关系.即一