2011-07-04 10 views
2

ビットマップを画面の高さに合わせ、画面全体を見ることができるようにユーザーがデスクトップを変更した場合は、画面を左右に少し移動するよりも幅が広い。ここでonOffsetsChanged:moveビットマップ

はただ部分的に動作します私のコードです:

 int x = -1*(int)((xOffset*bmp.getWidth())); 
     canvas.drawBitmap(bmp, x, 0, null); 

はあなたに感謝します!

答えて

1

onOffsetsChanged()の変数xPixelsとyPixelsで正確なピクセル値を取得します。ここに私の答えを参照してください:android live wallpaper rescaling

は、例えば、onOffsetsChanged()で、あなたが

holder = getSurfaceHolder(); 
c = holder.lockCanvas(); 
c.translate(mPixels, 0f); 
// c.drawBitmap ... goes here :-) 

通常ルーチンあなたのドローで、

mPixels = xPixels; 

次に変数プライベートクラスを設定することができ、あなたがお勧めします画面の幅の2倍のビットマップで、中央にアートワークが配置されています。たとえば、320ピクセル幅の画面→640ピクセル幅のビットマップで、「中央」が160から480までです。mPixelsは、最も左のランチャー画面(5)で0、中央で-160、右端の画面で-320 。

+0

いいえ、私は最後の画面に行くときにいくつかの黒の部屋に行くときに、それはdidnt仕事... – nomoral

+0

@nomoral私はあなたが微妙な間違いをしていると推測することができます...ビットマップが小さすぎる、あなたのコードを見ることができなければ、私はあなたが働いているオープンソースの例を見つけ、それをあなたがしたことと比較することを提案することができます。 –

+0

それは手動でそれを計算する方法はありません? – nomoral

関連する問題