早上好,
在编写我的第一个Android应用程序的过程中,请耐心等待。
我想为我使用的活动提供背景图片。我的第一种方法是将其简单地添加到活动的布局中,
....
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:contentDescription="@string/desc_background"
android:scaleType="centerCrop"
android:src="@drawable/background"
android:tint="#dd000022" />
....
不幸的是,当我反复调用某些活动时,这似乎会导致内存泄漏。最后我抓住并找到了原因Avoid memory leaks on Android
的原因我的下一个想法是做Romain在上面提到的文章中称之为“非常快且非常错误”的解决方案 - 将位图保存在静态字段或Application对象中。
我发现了关于这个主题的各种文章,但似乎没有人知道Romains的观点。此外,我不清楚如何实施Romains解决方案。
任何暗示如何处理android中的图像而不会遇到内存泄漏的提示将受到高度赞赏。
非常感谢
马丁
答案 0 :(得分:-2)
为什么不在您正在使用的布局中添加背景。
使用linearlayout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@drawable/my_background"
android:keepScreenOn="true"
android:orientation="vertical" >
**REST OF LAYOUT HERE**
</LinearLayout>
或者为所有活动使用一个图像创建自己的样式,然后在清单中应用
你的res / values中的添加了styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="android:Theme">
<item name="android:windowBackground">@drawable/my_background</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
</resources>
并在每个活动的清单中添加
android:theme="@style/MyTheme"