7

ImageView背景の一部を再生するスプラッシュ スクリーンがあります。ビットマップのスケーリングを許可するかどうかに関係なく (私は許可しています)、画質はひどいものです。色の濃さを落としていると思います。私はすでにSOを見回しました.1つの提案は、raw代わりに私の画像を配置するdrawableことでしたが、それも役に立ちませんでした. スクリーンショットは次のとおりです。

ここに画像の説明を入力

ここで正確に何が起こっていて、どうすれば修正できますか?

編集: このビットマップをプログラムで適用しなかったため、関連する Java コードはありません。このアクティビティの XML コードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/RelativeLayoutSplash"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:drawingCacheQuality="high"
    android:orientation="vertical"
    android:padding="@dimen/splash_padding"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    tools:context=".SplashActivity" >

    <ImageView
        android:id="@+id/ImageViewBg"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:contentDescription="@string/logo_description"
        android:scaleType="centerCrop"
        android:src="@drawable/splash_bg_register" />

    <ImageView
        android:id="@+id/ImageViewLogo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:contentDescription="@string/logo_description"
        android:maxHeight="@dimen/logo_maxheight"
        android:maxWidth="@dimen/logo_maxwidth"
        android:layout_centerVertical="true"
        android:src="@drawable/logo" />

    <TextView
        android:id="@+id/TextViewCopyright"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="@string/copyright"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/white_50"
        android:textSize="@dimen/copyright_size" />

</RelativeLayout>

編集:getWindow().setFormat(PixelFormat.RGBA_8888);提案どおりに試してみましたが、目に見える違いがありましたが、バンディングはまだ存在しています。これは私が背景として使用している画像です。

4

8 に答える 8

8

バンディングは主に、画像の縦横比が乱れた場合に発生します。

次のいずれかを試すことができます。

  1. あなたのイメージを作ります.9.png。その場合、ストレッチは自動的に修正され、バンディングが処理されます。

  2. 画像に表面的なディザリングを適用すると、異常なバンディングを防ぐことができます。

    <bitmap
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="@drawable/b1"
        android:tileMode="repeat"
        android:dither="true" />
    
于 2013-04-08T05:52:54.237 に答える
2

あなたのイメージの寸法は?そして、デバイスは何ですか?私が疑うのは、画像のサイズがディスプレイのサイズと一致せず、間違ったリソース ドローアブル フォルダーにあることです。画像はかなり拡大されたように見えます。これらの記事は、さまざまな画面の画像解像度とリソース フォルダーを選択するのに役立ちます。

http://developer.android.com/guide/practices/screens_support.html

http://developer.android.com/training/multiscreen/index.html

于 2013-04-04T11:49:18.377 に答える
2

ウィンドウの色形式を設定する必要があります。あなたの活動に次のようなものを入れてください:

getWindow().setFormat(PixelFormat.RGBA_8888);
于 2013-04-04T11:54:25.097 に答える
1

画像のサイズをさまざまなサイズに変更し、それらをそれぞれの描画可能なフォルダーの下に配置する必要がありますres/

于 2013-04-10T10:59:12.903 に答える
1

画像のサイズは、画像が表示される領域よりも小さいと思います。そのため、画像が拡大されて品質が低下している可能性があります。

What you can try is:

1. Either put the image of similar dimension 
2. use 9 patch image ( good idea )
于 2013-04-10T08:59:09.977 に答える
0

アンチエイリアスを試してみてください。これで問題が解決する場合があります。

以下の xml でビットマップ ドローアブルを作成します。

<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/background"
    android:antialias="true"
    android:dither="true"  />
于 2013-04-09T14:32:54.673 に答える
0

あなたがしていることは、その画像解像度が何をサポートしているかにはるかに依存するxmlで画像を設定することです。

複数のデバイスのサポートされている密度ごとに多数のフォルダーがあります。画像を dpi の適切なフォルダーに配置します。

このリンクを参照してくださいhttp://developer.android.com/guide/practices/screens_support.html

同じアプリのアイコンが別のフォルダでどのように異なる動作をするかを確認する

低密度、中密度、および高密度の画面で示されているように、さまざまな密度をサポートしていないアプリケーションの例

低密度、中密度、および高密度の画面に示されているように、さまざまな密度をサポートしていないアプリケーションの例。

ここに画像の説明を入力

低密度、中密度、高密度の画面で示されているように、さまざまな密度 (密度に依存しない) を適切にサポートするアプリケーションの例。

于 2013-04-12T13:17:01.497 に答える