本文主要是介绍Android开发--TableLayout中加载自写xml格式图形虚拟机上可显示,真机显示不了,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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格式自定义图片,才会出现不明情况
这篇关于Android开发--TableLayout中加载自写xml格式图形虚拟机上可显示,真机显示不了的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!