1

おはようございます、

私の最初の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" />
....

残念ながら、特定のアクティビティを繰り返し呼び出すと、メモリリークが発生するようです。ついに私は手に入れ、Androidでメモリリークを回避する理由を見つけました

私の次の考えは、上記の記事でRomainが「非常に高速で、非常に間違った」ソリューションと呼んでいること、つまりビットマップを静的フィールドまたはApplicationオブジェクトに保存することでした。

私はこのトピックに関するさまざまな記事を見つけましたが、それらのどれもRomainsのポイントを認識していないようです。また、Romainsソリューションを実装する方法もわかりません。

メモリリークに遭遇することなくAndroidで画像を処理する方法のヒントをいただければ幸いです。

どうもありがとう

マーティン

4

1 に答える 1

-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>

または、すべてのアクティビティに1つの画像を使用して、独自のスタイルを作成し、マニフェストに適用します

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"
于 2012-08-30T15:23:59.633 に答える