Android中dimens适配

原创 2016年11月16日 00:30:28
 Android中的适配,方式很多,网上资料很多。我个人的常用方法是按照dimens来适配的。根据比例来的,方法如下:
  • 创建一个Java工程,写一个处理xml文件的类【算出比例,填写比例】
  • 将要适配的dimens.xml放到src目录下
  • 添加dom4j的jar包
  • 运行程序,在consol输出的处理后的xml文件。

处理xml的Java代码如下:

public class ChangeDimensValue {
    public static void main(String[] args) throws Exception {
        ReadAndChange();
    }

    private static void ReadAndChange() throws Exception {
        String path = ChangeDimensValue.class.getResource("/dimens.xml").getPath();
        SAXReader reader = new SAXReader();
        // 读取xml文件内容,在内存中生成dom树
        // Document对象doc是树根
        Document doc = reader.read(path);
        Element email = doc.getRootElement();// 获得根元素
        // 测试迭代器遍历下层元素
        iterator(email);
    }

    private static void iterator(Element email) {
        StringBuffer sb = new StringBuffer();
        // e.elementIterator()获得下层元素迭代器
        Iterator<Element> it1 = email.elementIterator();
        sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
        sb.append("<resources>");
        while (it1.hasNext()) {
            Element e = it1.next();
            sb.append("<" + e.getName());
            Iterator<Attribute> itt = e.attributeIterator();
            Attribute att = itt.next();
            sb.append(" " + att.getName() + "=" +"\""+att.getValue()+"\"");
            sb.append(">");
            // 此处的倍数为缩放倍数,这里是720*1280变换为480*800
            sb.append(toMULNumber(e.getText(), new BigDecimal("0.72")));
            sb.append("</" + e.getName() + ">");
        }
        sb.append("</resources>");
        System.out.println(sb.toString());
    }

    private static String toMULNumber(String num, BigDecimal d) {
        System.out.println("num:"+num);
        BigDecimal bigDecimal = new BigDecimal(num.substring(0,
                num.length() - 2));
        bigDecimal = bigDecimal.multiply(d);
        int number = bigDecimal.intValue();
        return number + num.substring(num.length() - 2, num.length());
    }
}

工程截图如下:
这里写图片描述

版权声明:技术等于兴趣

获取dimens值问题

在开发过程中,遇到的一个关于不同屏幕资源地
  • wike163
  • wike163
  • 2014年06月05日 18:06
  • 3054

Android如何在代码中设置dimen值

在xml布局文件中这只dimens值大家应该都用的hen6了,但是有的时候必须要在代码中设置某一个控件的宽高等, 使用 getResources().getDimensionPixelSize(R...
  • mr_hmgo
  • mr_hmgo
  • 2017年01月05日 14:49
  • 2407

Android dimens适配

  • 2015年12月28日 11:22
  • 32KB
  • 下载

Android利用dimens.xml进行适配,使用代码生成不同的dimens.xml文件

在利用dimens.xml进行android设备适配的时候,在xml中我们不能直接定义写死的各个dp,px,sp等。应该使用@dimens/*******的方法,根据android设备的dpi和分辨率...
  • u011443763
  • u011443763
  • 2015年10月25日 23:17
  • 2076

Android 屏幕适配之dimens适配

在过去多个项目中一直使用dimens适配,这种适配方式的优点很明显,不用管什么dp还是dpi这些东西,只需要以一种屏幕分辨率为基准(例如1280x720,相当于把屏幕宽分成720份,高分成1280份)...
  • github_2011
  • github_2011
  • 2017年05月23日 10:23
  • 6851

android屏幕适配,自动生成不同的dimens.xml详解

android中官方建议的屏幕适配方式,通过根据不同的分辨率在工程的res文件夹下建立不同的尺寸文件夹,每个文件夹下都建立dimens.xml文件。然后根据不同的尺寸在dimens.xml文件夹中分别...
  • hnzcdy
  • hnzcdy
  • 2016年02月03日 13:47
  • 21310

Android 屏幕适配之dimens(上线项目中实际应用)

在过去多个项目中一直使用dimens适配,这种适配方式的优点很明显,不用管什么dp还是dpi这些东西,只需要以一种屏幕分辨率为基准(例如1280x720,相当于把屏幕宽分成720份,高分成1280份)...
  • qq_34161388
  • qq_34161388
  • 2017年06月19日 17:07
  • 3653

android中使用dimen定义尺寸 .

尺寸资源XML文件的使用        下面还是通过一个实例来演示尺寸资源的用法。该实例在布局文件中添加一个TextView和一个Button,分别使用尺寸资源文件来定义它们的宽和高。      ...
  • a907763895
  • a907763895
  • 2013年09月28日 22:26
  • 15251

Android ---读取dimen值

int bitmapwidth = getResources().getDimensionPixelSize(R.dimen.bird_bitmapwidth_height);
  • Sindyue
  • Sindyue
  • 2016年03月08日 15:18
  • 507

Android 屏幕适配之 dimens 适配

相信做手机端的 App 的小伙伴,只要是产品稍微大一点,就会面临屏幕适配的问题,...
  • zgcqflqinhao
  • zgcqflqinhao
  • 2017年09月02日 23:55
  • 411
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android中dimens适配
举报原因:
原因补充:

(最多只允许输入30个字)