安卓点九图中的一些坑
关于点九图的一些使用(踩坑)经验
网上有很多关于点九图的使用,这里不一一叙述,只要记住一点,点九图是用来给简单可拉伸的适配方案。先看效果图:
图一
图二
再看代码
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.raoqian.ninepngtestapplication.MainActivity">
<ImageView
android:layout_width="match_parent"
android:layout_height="20dp"
android:background="@android:color/white"
android:src="@drawable/login_submit_focus" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/login_submit_focus"
android:text="drawable/login_submit_focus.png"
android:textColor="@android:color/holo_red_dark" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/xh_login_submit_focus"
android:text="drawable/xh_login_submit_focus"
android:textColor="@android:color/holo_red_dark" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/xxh_login_submit_focus"
android:text="drawable/xxh_login_submit_focus"
android:textColor="@android:color/holo_red_dark" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/n_login_submit_2"
android:text="drawable/n_login_submit_2"
android:textColor="@android:color/holo_red_dark" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/n_xh_login_submit_2"
android:text="drawable/n_xh_login_submit_2"
android:textColor="@android:color/holo_red_dark" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/n_xxh_login_submit_2"
android:text="drawable/n_xxh_login_submit_2"
android:textColor="@android:color/holo_red_dark" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:src="@drawable/n_show22" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/show22"
android:text="drawable/show22"
android:gravity="center"
android:textColor="@android:color/holo_red_dark" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/n_show22"
android:text="drawable/n_show22"
android:textColor="@android:color/holo_red_dark" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/n_m_show22"
android:text="drawable/n_m_show22"
android:textColor="@android:color/holo_red_dark" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/n_xh_show22"
android:text="drawable/n_xh_show22"
android:textColor="@android:color/holo_red_dark" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/n_xxh_show22"
android:text="drawable/n_xxh_show22"
android:textColor="@android:color/holo_red_dark" />
</LinearLayout>
</ScrollView>
而图二与图一的差别就是每一个TextView多了一个 android:gravity=“center”
其中第一块 图是一个899X146 的 png图片(老项目的做法,仅作示例),而第二个图是40X40的一个图片,而出现不同效果的原因相比部分看官已经知道了,一下没反应过来的请看下面:
看到括号里面的字没,现在大部分的点九图介绍都是说是放在drawable文件夹下的一个,但是没有介绍点九图 和 不同的尺寸文件夹会发生什么样的化学反应,原理我就不说了,反正我也不知道,给大家分享一下我的结论吧:
- 点九图来源图使用尺寸小的,填充部分尽量由拉伸而来,如果用比较大的尺寸的话一定要注意填充区域,像图中第一部分的第四张图内容区域就直接被挤到没有了
- 实在要用大图的话一定要注意填充位置,像放在xxh中的图片经历的过程是:先图片压缩到最小尺寸–>在点九图中标记位置进行拉伸,所以填充位置会有问题(图一中后面三个,尤其是有一个没有位置填充内容了)