0

問題が発生しました。問題を解決しようとしましたが、解決策が見つかりませんでした。

2列の画像があります。各画像の中間点で結合したいと思います。私が抱えている問題は、画像のようにアタッチメントポイントが下に移動することです 私の問題の例

「メイン」クラスと内部クラスがあります。 public クラス DrawView は LinearLayout を次の属性で拡張します。 private Paint paint = new Paint(); 次の値を設定します: paint.setColor(Color.BLACK); paint.setStrokeWidth(6);

次のコードを使用して線を描画します。

public void onDraw(Canvas canvas) {
    }

    @SuppressLint("UseValueOf")
    @Override
    public void dispatchDraw(Canvas canvas) {
        super.dispatchDraw(canvas);
        if (activateDraw) {
            for (int i = 0; i < 5; i++) {
                             //I not include the color selection.
                    x1= Image[i].x + Image[i].width;
                    y1=Image[i].y+ (new Double(Image[i].height / 2).intValue()));

                    x2=ImagePr[i].x;
                    y2=ImagePr[i].y + (new Double((ImagePr[i].height) / 2).intValue()));
                    canvas.drawLine(x1, y1, x2, y2, paint);
            }
            activateDraw = false;
        }
    }

x と y の値を設定するには、次のメソッドを使用します。

public void setData(ImageView img) {
    image = img;
    int[] values = new int[2];
    image.getLocationInWindow(values);
    x = values[0];
    y = values[1];
    width = image.getWidth();
    height = image.getHeight();
}

メイン クラスには次の属性があります。 Canvas auxCanvas = new Canvas(); 線を描きたいときに onDraw(auxCanvas) メソッドを実行します。「中点」を結ぶ線が描かれないのはなぜですか?

誰でも私を助けることができますか?ありがとう!!

@Shaunak申し訳ありませんが、失敗しました。私はそれを削除しましたが、影響はありません。問題は続きます。ありがとうございました!

@anthropomo私はあなたの変更を試みましたが、問題は続きます。

エミュレータでは正常に動作しているように見えるのに、デバイスでは動作しない理由がわかりません。

解決:

(私は答えを書いたと思いました、申し訳ありません)解決策は非常に簡単でした。このアプリは 6 ~ 8 歳の学生を対象としているため、ステータス バーを非表示にすることにしました。上記のコードは、変更を加えることなく完全に機能します。ステータスバーを 隠す: 通知バーを隠す

既存のカスタム テーマを使用して XML のアクティビティのタイトル バーを非表示にする方法

他の人がステータス バーを表示したい場合は、ステータス バーの高さを差し引く必要があると思います。

4

1 に答える 1

1

参照:http ://developer.android.com/reference/android/util/DisplayMetrics.html#density

このようなものはあなたのために働きますか?:

float d = getResources().getDisplayMetrics().density;
canvas.drawLine(x1*d, y1*d, x2*d, y2*d, paint);

注:乗算が機能しない場合は、で割ってみてくださいd...私は何をすべきか思い出せません。

于 2013-02-01T16:20:06.327 に答える