2
如果我將不同分辨率的圖片放入不同的可繪製文件夾中,它將不會拉伸,並且會從其中一個可繪製文件夾中選擇圖片。但是,這些照片仍然顯示出來。如何縮放位圖?
如果我將圖片放入只有1個可繪製文件夾中,由於某些原因,圖片拉伸的方式會比實際的手機大小要大。這就像我只能看到圖片的中間部分。
我也注意到幀被跳過。
有人能給我一些建議嗎?
謝謝你,我非常感謝你的幫助。
主類:
public class main_activity extends WallpaperService {
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public Engine onCreateEngine() {
eturn new wallpaperEngine();
}
class wallpaperEngine extends Engine implements
SharedPreferences.OnSharedPreferenceChangeListener{
private final Handler mhandler = new Handler();
private final Runnable drawrunnable = new Runnable()
{
public void run() {
drawFrame();
}
};
private boolean mVisible;
private SharedPreferences mPrefs;
private int i = 0;
int[] pirates = {
};
wallpaperEngine()
{
mPrefs = main_activity.this.getSharedPreferences(SHARED_PREFS_NAME, 0);
mPrefs.registerOnSharedPreferenceChangeListener(this);
onSharedPreferenceChanged(mPrefs, null);
}
public void onSharedPreferenceChanged(SharedPreferences mPrefs2, String key) {
}
@Override
public void onCreate(SurfaceHolder holder){
super.onCreate(holder);
}
@Override
public void onDestroy() {
super.onDestroy();
mhandler.removeCallbacks(drawrunnable);
}
@Override
public void onVisibilityChanged(boolean visible) {
mVisible = visible;
if (visible) {
drawFrame();
} else {
mhandler.removeCallbacks(drawrunnable);
}
}
@Override
public void onSurfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
super.onSurfaceChanged(holder, format, width, height);
drawFrame();
}
@Override
public void onSurfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
super.onSurfaceCreated(holder);
}
@Override
public void onSurfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
super.onSurfaceDestroyed(holder);
mVisible = false;
mhandler.removeCallbacks(drawrunnable);
}
@Override
public void onOffsetsChanged(float xOffset, float yOffset, float xStep,float yStep, int xPixels, int yPixels) {
drawFrame();
}
@Override
public void onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
}
private void drawFrame() {
// TODO Auto-generated method stub
final SurfaceHolder holder = getSurfaceHolder();
Canvas c = null;
try {
c = holder.lockCanvas();
if (c != null) {
drawPirate(c);
}
} finally {
if (c != null)
holder.unlockCanvasAndPost(c);
}
mhandler.removeCallbacks(drawrunnable);
if (mVisible) {
mhandler.postDelayed(drawrunnable);
}
}
private void drawPirate(Canvas c) {
// TODO Auto-generated method stub
Bitmap icon;
c.drawBitmap(icon, matrix, null);
icon.recycle();
}
}
}
編輯:固定標題
編輯:我在黑油漆去除。它不應該在那裏
非常感謝您的答覆。我想要做的就是以幻燈片形式顯示圖片,並且我喜歡所有圖片在所有Android手機上都以正確的尺寸/尺寸展開。這意味着它應該獲得手機的大小,然後相應地拉伸圖片。 –
嗡嗡聲,是否有一個原因,你是專門繪製在畫布上,而不是隻加載ImageViews?這些允許您設置特定的佈局格式,比如fitXY等,這樣可以將圖像縮放爲您提供的佈局大小。 – user2881881
老實說,我在網上有一些我的代碼,所以我仍然試圖瞭解他們,因爲我還是一個新手。你能告訴我如何解決它嗎?謝謝 –