Android初心者です。
よろしくお願いいたします。
将来的にスクロール画面を作ろうとしています。
まずは画像をスムーズに(1ピクセル毎)スライドさせるプログラムを仮に
作ってみました。
2000px✖1000pxの画像を読み込んで、
500✖1000の画面にスライドさせようと思っています。
ただ色々試行錯誤しましたが、最初の画面が表示された後に、
1px毎に表示されず、一気に1500px動いた画像になってしまいます。
大変、お手数をおかけいたしますが、ご教授の程、
よろしくお願いいたします。
また、根本的に違っていることや、違うプログラムの仕方等ありましたら、
合わせてご教授頂けると助かります。
import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.os.Bundle; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.widget.ImageView; public class Battle_view extends AppCompatActivity { Bitmap map_img; Bitmap map_view; Canvas canvas; Canvas canvas_v; Paint paint; ImageView aaa; Handler hdl = new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_battle_view); map_img = BitmapFactory.decodeResource(getResources(), R.drawable.test); map_img = Bitmap.createScaledBitmap(map_img, 2000, 1000, false); map_view = Bitmap.createBitmap(500, 1000, Bitmap.Config.ARGB_8888); paint = new Paint(); canvas = new Canvas(map_img); canvas_v = new Canvas(map_view); canvas_v.drawBitmap(map_img, 0, 0, null); aaa = ((ImageView) findViewById(R.id.imageView)); aaa.setImageBitmap(map_view); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); hdl.post(new m_view()); } class m_view implements Runnable { public void run() { canvas_v = new Canvas(map_view); aaa.setImageBitmap(map_view); int i = 0; while (i < 1500) { canvas_v.drawBitmap(map_img, i * -1, 0, null); i++; } } } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/29 14:15
2017/01/29 14:39
2017/01/29 15:10
2017/01/29 16:06
2017/01/30 14:30