Cường Ngô
Beginner
Asked At:
1696810938000
In:
Kotlin
Tạo mũi tên giữa hai views
<div class="markdown-block">Giúp em cái này với ạ, e muốn vẽ mũi tên nẵm chính giữa 2 views, nhưng mà nó cứ bị lệch, code của e đây ạ.</div><div class="markdown-block">val mImageView = findViewById<ImageView>(R.id.image_view_1)</div><div class="markdown-block">val mButton = findViewById<Button>(R.id.button_1)</div><div class="markdown-block">val tv1 = findViewById<View>(R.id.textView)</div><div class="markdown-block">val tv2 = findViewById<View>(R.id.textView2)</div><div class="markdown-block">val currentDisplay = windowManager.currentWindowMetrics</div><div class="markdown-block">val dw = currentDisplay.bounds.width()</div><div class="markdown-block">val dh = currentDisplay.bounds.height()</div><div class="markdown-block">val mBitmap = Bitmap.createBitmap(dw, dh, Bitmap.Config.ARGB_8888)</div><div class="markdown-block">val mCanvas = Canvas(mBitmap)</div><div class="markdown-block">mImageView.setImageBitmap(mBitmap)</div><div class="markdown-block">mButton.setOnClickListener {</div><div class="markdown-block">val mPaint = Paint()</div><div class="markdown-block">mPaint.color = Color.GREEN</div><div class="markdown-block">mPaint.style = Paint.Style.STROKE</div><div class="markdown-block">mPaint.strokeWidth = 10F</div><div class="markdown-block">mPaint.isAntiAlias = true</div><div class="markdown-block">val mStartX = tv1.bottom.toFloat()</div><div class="markdown-block">val mStartY = tv1.left.toFloat()</div><div class="markdown-block">val mStopX = tv2.top.toFloat()</div><div class="markdown-block">val mStopY = tv2.right.toFloat()</div><div class="markdown-block">mCanvas.drawLine(mStartX, mStartY, mStopX, mStopY, mPaint)</div><div class="markdown-block">mImageView.setImageBitmap(mBitmap)</div><div class="markdown-block">}</div><div class="markdown-block">e muốn kết quả như vầy ạ.!s.pngcòn đây là hình code chạy!z4765858565121_90a7d7791567c04d5e6334f2ef6f8d54.jpg</div>