Android开发--TableLayout中加载自写xml格式图形虚拟机上可显示,真机显示不了

来源:互联网 发布:php分页代码兄弟连 编辑:程序博客网 时间:2024/06/05 07:53

TableLayout中加载自写xml格式图形,虚拟机安卓7.0上可显示,真机安卓4.0显示不了,怀疑是因为版本问题,旧版本不支持直接引用drawable文件夹下的xml自写图形。于是尝试把xml自写图形换成png图片,则真机可显示出。

Java文件:只是显示页面功能而已

public class SecondActivity extends Activity {   //int flag =1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.second_main);
second_main.xml文件 显示表格一行两列

<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:divider="@color/colorPrimaryDark"    android:dividerPadding="1dp"    android:showDividers="middle|end"    >    <TableRow>        <TextView            android:textSize="30sp"            android:text="@string/boshu1"            />        <ImageView            android:id="@+id/bo11"            android:src="@drawable/picture"            android:layout_marginLeft="1dp"            android:layout_gravity="center"            />
 </TableRow></TableLayout>
自写灰色小矩形picture.xml

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle"    >    <size android:height="15dp"/>    <size android:width="70dp"/>    <solid android:color="#E0E0E0"/>    <stroke android:width="1dp" android:color="#D0D0D0"/></shape>
预览及虚拟机效果:有灰色小矩形出现

真机效果:无灰色小矩形出现


没有查到相关资料。

我怀疑是低版本的android不支持TableLayout直接引用drawable文件下的自写xml图形。

于是改进,让TableLayout直接引用png格式图片。真机也能显示出预览和虚拟机的效果了。



思路:

真机测试图片显示不出来-->使用虚拟机测试,图片显示出来-->查看真机虚拟机版本(于是怀疑是因为版本不支持造成的,但是编译时没有提示版本不支持信息)-->版本不支持的是什么功能?引用自写xml图形的用法不常见,于是怀疑是这种方法不通用-->改引用Png格式图片,真机虚拟机都可现实-->怀疑是旧版本不支持直接引用自写xml图形。


实现方法一:

“TableLayout中<TableRow>子控件的默认高和宽都是wrap_content”,此规则适用于<ImageView>src引用png格式。这种方法显示的是图片实际像素,不同分辨率手机呈现效果会不同。推荐第二种方法。

实现方法二:

<ImageView>指定height,width后,src引用xml自定义图形或者background引用.9.png。


主要是图片主要应该引用.9.png,而我非要尝试引用xml格式自定义图片,才会出现不明情况

0 0
原创粉丝点击