在发布此问题之前,我尝试了在Android部分找到的所有答案,但没有成功...
由于某种原因,设备中的图像质量很差,在Eclipse和虚拟设备中非常好
看截图示例:
example http://img714.imageshack.us/img714/1358/84044294.jpg
我该怎么办?
我尝试用72dpi和300 dpi制作图像,PNG / JPG分辨率为1280x800
但没有任何作用......
请帮忙!!
这是我的 LiveNewsActivity.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"));
}
});
}
}
答案 0 :(得分:7)
试一试:
将它放在第一个活动
上的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中“如果你有xml图像”文件夹和png,jpeg和其他普通图像放在res / drawable-hdpi文件夹中。
希望这有帮助。
答案 1 :(得分:2)
我尝试了在Android部分找到的所有答案,但没有取得任何成功
如果你说过你尝试过哪种方法会很有帮助,但Marc的评论是正确的。您需要确保您的图像和窗口都具有更高的位深度(可能是ARGB_8888)。有关详细信息,请参阅this article,您可以启用抖动。把它放在onCreate
中应该照顾很多:
getWindow().setFormat(PixelFormat.RGBA_8888);
答案 2 :(得分:2)
O.K伙计们,我找到了解决方案 ... 据我了解...在Photoshop中保存渐变图像时,Photoshop会尝试通过删除 Alpha通道来优化图像大小。
所以你需要从顶部(左/右)角或按钮(右/左)角删除一个像素
然后Photoshop将“看到”该图像具有Alpha通道,并且将在设备上工作... 请注意......某些设备无法显示完美的渐变色..
希望有用! 谢谢你的帮助!
答案 3 :(得分:0)
尝试使用高质量图像。你能否确认背景是否还包含地球图像和文字?背景是否有渐变色?