問題が発生しました。問題を解決しようとしましたが、解決策が見つかりませんでした。
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 のアクティビティのタイトル バーを非表示にする方法
他の人がステータス バーを表示したい場合は、ステータス バーの高さを差し引く必要があると思います。