رفتن به مطلب
  • 0

گوشه گرد عکس


اندرویدستان

سوال

چطور میشه گوشه های عکس رو گرد کرد

فقط گوشه کل عکس رو بلدم

مثلا تصویر مستطیل با کمی گوشه گرد شده

لینک ارسال
به اشتراک گذاری در سایت های دیگر

3 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

'xui is a global XUI variable.

Sub CreateRoundBitmap (Input As B4XBitmap, Size As Int) As B4XBitmap

   If Input.Width <> Input.Height Then

       'if the image is not square then we crop it to be a square.

       Dim l As Int = Min(Input.Width, Input.Height)

       Input = Input.Crop(Input.Width / 2 - l / 2, Input.Height / 2 - l / 2, l, l)

   End If

   Dim c As B4XCanvas

   Dim xview As B4XView = xui.CreatePanel("")

   xview.SetLayoutAnimated(0, 0, 0, Size, Size)

   c.Initialize(xview)

   Dim path As B4XPath

   path.InitializeOval(c.TargetRect)

   c.ClipPath(path)

   c.DrawBitmap(Input.Resize(Size, Size, False), c.TargetRect)

   c.RemoveClip

   c.DrawCircle(c.TargetRect.CenterX, c.TargetRect.CenterY, c.TargetRect.Width / 2 - 2dip, xui.Color_White, False, 5dip) 'comment this line to remove the border

   c.Invalidate

   Dim res As B4XBitmap = c.CreateBitmap

   c.Release

   Return res

End Sub

یا می تونید از این کتابخونه استفاده کتید

https://www.b4x.com/android/forum/threads/selectableroundedimageview.55302/#content

'ImageView1 type is B4XView
Dim img As B4XBitmap = xui.LoadBitmap(File.DirAssets, "myimage.jpg")
ImageView1.SetBitmap(CreateRoundBitmap(img, ImageView1.Width))
لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۱۰/۲۴ در ۱۸:۵۴، farsroom گفته است:

 

من از این تابع استفاده میکنم مشکلیم نداره

هر گوشه ای که میخواید میتونید مقدار بدید گرد میشه

Public Sub setCornerRadius(v As View, Rx_TopLeft As Float, Ry_TopLeft As Float, Rx_TopRight As Float, Ry_TopRight As Float, Rx_BottomRight As Float, Ry_BottomRight As Float, Rx_BottomLeft As Float, Ry_BottomLeft As Float)
	Dim jo As JavaObject = v.Background
	If v.Background Is ColorDrawable Or v.Background Is GradientDrawable Then
		jo.RunMethod("setCornerRadii", Array As Object(Array As Float(Rx_TopLeft, Ry_TopLeft, Rx_TopRight, Ry_TopRight, Rx_BottomRight, Ry_BottomRight, Rx_BottomLeft, Ry_BottomLeft)))
	End If
End Sub

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۱۰/۲۴ در ۱۹:۵۴، For گفته است:

من از این تابع استفاده میکنم مشکلیم نداره

هر گوشه ای که میخواید میتونید مقدار بدید گرد میشه

Public Sub setCornerRadius(v As View, Rx_TopLeft As Float, Ry_TopLeft As Float, Rx_TopRight As Float, Ry_TopRight As Float, Rx_BottomRight As Float, Ry_BottomRight As Float, Rx_BottomLeft As Float, Ry_BottomLeft As Float)
	Dim jo As JavaObject = v.Background
	If v.Background Is ColorDrawable Or v.Background Is GradientDrawable Then
		jo.RunMethod("setCornerRadii", Array As Object(Array As Float(Rx_TopLeft, Ry_TopLeft, Rx_TopRight, Ry_TopRight, Rx_BottomRight, Ry_BottomRight, Rx_BottomLeft, Ry_BottomLeft)))
	End If
End Sub

 

ممنون بابت کد

ولی کار نکرد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...