Androidのキャンバスに描画されるアイテムをスクロールする基本を理解するためには、何か助けが必要です。タイムラインを作成して、0の時刻が視覚化の先頭であり、時間が増えるにつれてタイムラインが前のポイントより下に引き続きレンダリングされるようにするとします。 Androidでこれをレンダリングしたい場合は、onDraw()をオーバーライドしてキャンバス上にアイテムの束を簡単に作成することができます。しかし、視覚化が画面が許すよりも大きいとしましょう。大きなキャンバスをスクロールする
たとえば、下の最初の図の大きな黒いボックスには、キャンバス全体がレンダリングされています。私は垂直方向に上下に走る青い線と、いくつかの黄色、緑色、青色の長方形を作成します。赤いボックスは、視覚化をレンダリングしているAndroidの画面を表します。最初はすべてのアイテムが表示されますが、赤いボックス内のアイテムのみが画面に表示されます。
ユーザーがスクロールダウンしている場合に表されるように赤いボックスの境界の外になっているアイテムは、もはやvisableありながら今、最初は赤いボックスの下に現れたアイテムは、ビューにありません2番目の画像。
は私がscrollablesを使用する必要があると考えているが、私は非常にこれを行うにはどのように失われています。私はこのページを読んでhttp://developer.android.com/training/custom-views/custom-drawing.html自分の顧客イメージを作成する方法とこのページhttp://developer.android.com/training/custom-views/making-interactive.htmlをインタラクティブにする方法を説明していますが、私は何か不足していると思います。
この問題を示すサンプルコードは以下の通りである(ボックスは線が行く/論理口述録音、等が存在すると仮定し、これは塩基性である):
package com.example.scrolltest;
import com.example.scrolltest.Draw;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
public class MainActivity extends Activity {
Draw draw;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
draw = new Draw(this);
draw.setBackgroundColor(Color.WHITE);
setContentView(draw);
}
}
と
package com.example.scrolltest;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
public class Draw extends View {
Paint paint = new Paint();
public Draw(Context context) {
super(context);
}
@Override
public void onDraw(Canvas canvas) {
paint.setColor(Color.GREEN);
canvas.drawRect(30, 30, 90, 200, paint);
paint.setColor(Color.BLUE);
canvas.drawLine(100, 20, 100, 1900, paint);
paint.setColor(Color.GREEN);
canvas.drawRect(200, 2000, 400, 3000, paint);
}
}
私が理解できないことは、スクロールして画面外にある矩形にスクロールする方法です。私はこれを正しく起動または代わりにドロワブル使用する必要がある場合、私は
はどのように我々は、キャンバスに機能を追加することができますパン? –