android:(不好)布局背景中的图像质量低

android:(不好)布局背景中的图像质量低,android,image,layout,Android,Image,Layout,在我发布这个问题之前,我尝试了在Android部分找到的所有答案,但没有成功… 由于某些原因,设备中的图像质量较差,Eclipse和虚拟设备中的图像质量非常好 请看屏幕截图示例: 我该怎么办? 我尝试用72dpi和300dpi制作图像,PNG/JPG分辨率为1280x800 但什么都不管用… 请帮忙 这是我的livenewsavity.java也许我做错了什么 package com.prog.livenews; import android.app.Activity; import and

在我发布这个问题之前,我尝试了在Android部分找到的所有答案,但没有成功…
由于某些原因,设备中的图像质量较差,Eclipse和虚拟设备中的图像质量非常好
请看屏幕截图示例:

我该怎么办? 我尝试用72dpi和300dpi制作图像,PNG/JPG分辨率为1280x800 但什么都不管用…
请帮忙

这是我的livenewsavity.java也许我做错了什么

package com.prog.livenews;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.PixelFormat;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;


public class LiveNewsActivity extends Activity {
/** Called when the activity is first created. */

//############################
//######### VARS #############

Button login;
Button register;

//############################
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test);
    getWindow().setFormat(PixelFormat.RGBA_8888);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inPreferredConfig = Bitmap.Config.ARGB_8888;
    Bitmap gradient = BitmapFactory.decodeResource(getResources(), R.drawable.bg, options);

    findViewById(R.id.frameLayout1).setBackgroundDrawable(new BitmapDrawable(gradient));

    login = (Button) findViewById(R.id.main_login_button);
    register = (Button) findViewById(R.id.main_register_button);



    login.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity(new Intent("com.prog.livenews.LOGIN"));
        }
    });

    register.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity(new Intent("com.prog.livenews.REGISTER"));
        }
    });


}

}
我尝试了在Android部分找到的所有答案,但没有成功

如果你能说明你也尝试过哪种方法,那会很有帮助,但马克的评论是正确的。您需要确保图像和窗口都具有更高的位深度(可能是ARGB_8888)。有关更多信息,请参阅,您可以启用抖动。将其放入
onCreate
中应该考虑很多问题:

getWindow().setFormat(PixelFormat.RGBA_8888);

尝试使用高质量的图像。您能确认背景上是否也包含地球仪图像和文字吗?背景是否有渐变色?

好的,伙计们,我找到了解决方案。。。 据我所知。。。在Photoshop中保存渐变图像时,Photoshop将尝试通过删除Alpha通道来优化图像大小

因此,您需要从上(左/右)角或按钮(右/左)角删除一个像素

然后Photoshop将“看到”图像有一个Alpha通道,它将在设备上工作… 注意。。。有些设备无法完美显示渐变色

希望这是有帮助的谢谢大家的帮助

试试看:

在第一个活动中,将其放在setContentView(layoutId)之前

getWindow().setFormat(PixelFormat.RGBA_8888);
在第一个活动中调用setContentView(layoutId)后,您会输入以下代码:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
options.inDither = true;
options.inScaled = false;
options.inDither = false;
options.inPurgeable = true;
Bitmap preparedBitmap = BitmapFactory.decodeResource(yourAppName.getSharedApplication().getResources(),
            R.drawable.bg, options);
    Drawable background = new BitmapDrawable(preparedBitmap);
    ((LinearLayout) findViewById(R.id.yourLayoutId))
        .setBackgroundDrawable(background);
最后,将xml图像放入res/drawable“if you have xml images”文件夹,将png、jpeg和其他法线图像放入res/drawable hdpi文件夹


希望这能有所帮助。

DPI与此无关。这是马赫带,表示背景显示深度太低(例如以8位模式显示32位渐变)。图像质量高,背景不包含球体和文本,仅包含灰色。背景是渐变色的…@ofeer Perfecty,我在等待你的回复。