今晩は、「repaint();」の使い方について質問致します、
宜しくお願いします。
・ 背景画像を横方向にスクロールさせるコードを書きましたが、
「thread」内の「repaint();」で「この変数を解決できません」
みたいなエラーがでます。
この原因が分かりません。
下にコードを貼りますので宜しくお願いします。
public class SampleView extends View
{
MainActivity sa ;
int disp_w ;
int drawX = 0 ;
int drawY = 0 ;
int vx = 5 ;
Paint paint = new Paint( ) ; MyThread thread = null ; //画像読み込み Resources res = this.getContext( ).getResources( ) ; Bitmap Back = BitmapFactory.decodeResource( res , R.drawable.back ) ; public SampleView( Context context ) { super( context ) ; sa = (MainActivity) context ; disp_w = (int)sa.Display_w ; drawX = 0 ; drawY = 0 ; } @Override public void onDraw( Canvas c ) { //BackGround c.drawBitmap( Back , drawX , drawY , paint ) ; }
//--Inner class--------------------------------
class MyThread extends Thread { public void run() { Thread thisThread = Thread.currentThread() ; while ( thread == thisThread ) { try { if ( drawX < disp_w ) { drawX = drawX + vx ; } else { drawX = 0 ; }
// repaint( ) ;
thread.sleep( 300 ) ;
}
catch ( InterruptedException e ) { }
}
}
}
//--End Of Inner class--------------------------------
}
repaint()ってどこのメソッドを呼び出しているつもりなのでしょうか?Android SDKにはそういうメソッドを持つクラスは存在しないような?
本サイトでプログラムコードを記載するにはマークダウン記法を使う必要があります。「https://teratail.com/help#about-markdown」の「コードを入力」を参考にして質問を編集してください。
keicha_hrsさん回答有り難う御座います。「 c.drawBitmap( Back , drawX , drawY , paint ) ;」をBackというイメージを右に動かした後に、再描画させたいのですが、そのようなメッソドがないのなら、どのようなメソッドでどのように書き換えしたらいいのでしょうか、宜しく尾根d該いたします。
回答2件
あなたの回答
tips
プレビュー