View を拡張し、Canvas でグラフを描画するこのクラスを作成しました。グラフを描いているときは、実際の画面の高さと幅を考慮しており、それに応じてグラフを描いています。
私の問題は、この View を別のアクティビティのウィジェットとして 100 x 150 などの目的のサイズで使用していることです..しかし、View クラスはそれ自体をスケーリングせず、グラフではなくクリップされた部分のみを表示します。このキャンバスを目的のサイズに合わせるために計算を行う必要があることは知っていますが、その方法がわからない..どんな助けでも素晴らしいでしょう!!
グラフを描いているコードは
public class GraphPlotting extends View
{
public void onDraw(Canvas canvas)
{
readPoints();
Paint paint1 = new Paint();
paint1.setColor(Color.rgb(0xFF,0xFF, 0xFF));
paint1.setStrokeWidth(1.0f);
Paint paint2 = new Paint();
paint2.setColor(Color.rgb(0xFF,0xFF, 0xFF));
paint2.setStrokeWidth(10.0f);
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
canvas.drawPaint(paint);
canvas.drawLines(p,paint1);
}
public void readPoints()
{
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
height = dm.heightPixels;
width = dm.widthPixels;
// drawing graph based on above dimension which in my case is 480 by 800
}
このビューを使用しているxmlレイアウト
<RelativeLayout
android:layout_width="200dp"
android:layout_height="200dp"
android:orientation="vertical"
android:layout_below="@+id/btn_analyze"
android:layout_centerHorizontal="true"
android:id="@+id/rlgraph"
>
<com.aventusoft.mylynel.GraphPlotting
android:id="@+id/view1"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
キャンバスに相対レイアウトの高さと幅を合わせたいのですが、その領域にグラフが表示されるはずです..現在、ビューが表示されていますが、その一部しか表示されていません..グラフはまったく表示されていません..計算を手伝ってください.行う..