当前位置: 首页 > news >正文

在线建设网站 源代码佛山网页网站设计多少钱

在线建设网站 源代码,佛山网页网站设计多少钱,选图片的网站,教育网站制作运营Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜#xff0c;Kotlin#xff08;1#xff09; 实现查看图片的放大镜#xff0c;放大镜随着手指在屏幕上的移动#xff0c;放大镜里面展示手指触点为中心、半径长度的圆形放大后的图片。 剪切出一块圆形Path…Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜Kotlin1 实现查看图片的放大镜放大镜随着手指在屏幕上的移动放大镜里面展示手指触点为中心、半径长度的圆形放大后的图片。 剪切出一块圆形Path然后在圆形Path画放大后的图。因为是clipPath只会显示Path区域内区域外不显示。 import android.content.Context import android.graphics.Bitmap import android.graphics.Canvas import android.graphics.Color import android.graphics.Matrix import android.graphics.Paint import android.graphics.Path import android.graphics.drawable.BitmapDrawable import android.os.Bundle import android.util.AttributeSet import android.util.Log import android.view.MotionEvent import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.AppCompatImageViewclass MainActivity : AppCompatActivity() {private var image: MyImage? nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)image findViewById(R.id.image)} }class MyImage : AppCompatImageView {private val TAG flyprivate var mIsDraw falseprivate var curX: Float 0fprivate var curY: Float 0fprivate var originBmp: Bitmap (drawable as BitmapDrawable).bitmapconstructor(ctx: Context, attrs: AttributeSet) : super(ctx, attrs)override fun onTouchEvent(event: MotionEvent?): Boolean {when (event?.actionMasked) {MotionEvent.ACTION_DOWN - {mIsDraw truecurX event.xcurY event.yinvalidate()}MotionEvent.ACTION_MOVE - {curX event.xcurY event.yinvalidate()}MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL - {mIsDraw falseinvalidate()}}return true}override fun draw(canvas: Canvas) {super.draw(canvas)if (canDraw()) {myDraw(canvas)}}private fun canDraw(): Boolean {return mIsDraw}/*** Matrix放大矩阵然后通过clipPath剪切一块圆形区域作为放大镜区域然后直接在clipPath的区域上绘制放大后的图。*/private fun myDraw(canvas: Canvas) {Log.d(TAG, ImageView w${width} h${height} Bitmap w${originBmp.width} h${originBmp.height})val path Path()val radius 250fval factor 2fval paint Paint(Paint.ANTI_ALIAS_FLAG)paint.color Color.REDpaint.style Paint.Style.STROKEpaint.strokeWidth 10fpath.addCircle(curX, curY, radius, Path.Direction.CW)canvas.drawPath(path, paint) //画红色的圆圈圆心是手指在屏幕上的触点。canvas.clipPath(path) //剪切出来一片圆形区域。//特别注意这里固定以手机屏幕的宽度为基准等比例放大Bitmap。val scaleW: Float resources.displayMetrics.widthPixels.toFloat()val scaleH: Float (originBmp.height.toFloat() / originBmp.width.toFloat()) * scaleWLog.d(TAG, display w${scaleW} h${scaleH})val matrix Matrix()matrix.setScale(factor, factor)//canvas.concat(matrix)val dx -curX * (factor - 1)val dy -curY * (factor - 1)//上下左右移动矩阵使得放大后的矩阵处于圆圈的内容刚好是手指触点为中心的圆图。matrix.postTranslate(dx, dy)canvas.drawBitmap(Bitmap.createScaledBitmap(originBmp, scaleW.toInt(), scaleH.toInt(), true),matrix,paint)} } com.pkg.MyImageandroid:idid/imageandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:adjustViewBoundstrueandroid:scaleTypefitCenterandroid:srcmipmap/p2 / 需要注意的因为在xml布局里面特别设置了ImageView的高度为wrap_content手指在屏幕触点的位置是放大镜里面放大图片后准确圆心位置但是如果ImageView设置成match_parent则因为ImageView里面的Bitmap被缩放(此处Bitmap其实小于ImageView被拉伸了)拉伸后的Bitmap水平方向坐标与ImageView一直重合但竖直方向Bitmap坐标与ImageView不一致会造成一种现象手指触点放大镜放大后水平方向是正确的但竖直方向有偏移量。如果想要纠正竖直方向的偏移量可以考虑调校Bitmap竖直方向顶部与ImageView顶部的坐标偏移。 Android Matrix画布Canvas缩放scaleKotlin-CSDN博客文章浏览阅读168次点赞3次收藏3次。文章浏览阅读9.6k次。文章浏览阅读1.8k次。/*Java代码 将Drawable转化为Bitmap */ Bitmap drawableToBitmap(Drawable drawable) { int width drawable.getIntrinsicWidth();Android Material Design LinearLayoutCompat添加分割线divider_linearlayout 分割线-CSDN博客。https://blog.csdn.net/zhangphil/article/details/135114661
http://www.zqtcl.cn/news/100296/

相关文章:

  • 新余 网站建设网站建设行业新闻
  • 做301网站打不开网上智慧团建网站
  • 四川省住房与城乡建设厅官方网站免费域名解析ip
  • 芜湖网站建设价格这么做网站原型图
  • 做传奇网站怎么弄的南京微网站开发
  • 网站建设基础教程人教版网站域名选择的原则
  • u盘做网站网站建设公司公司介绍
  • 嘉兴网站排名优化报windows wordpress 轻量级
  • html5网站开发方案海珠网站建设公
  • 津做网站建筑网课平台
  • 佛山制作手机网站汕头网站定制
  • 网站域名解释怎么做济南集团网站建设
  • 网站怎么做咨询网站开发商
  • 建立网站的第一步网站的管理系统
  • 安远做网站做宣传册网站
  • 网站建设概况君隆网站建设
  • 富源县住房和城乡建设局网站备案信息 网站名
  • 做门窗的网站宁波附近的seo推广
  • 上海网站建设解决方案怎样设计网站
  • 龙华建站公司seo研究中心怎么样
  • 网站的大图标怎么做项目网站
  • 南京网站设计机构wap网站设计方案
  • 建站点怎么做网站wordpress 重写规则
  • 泰州做网站优化服装网站建设方案ppt
  • wordpress怎么设计网站微商城科技
  • 昆山营销型网站建设旅游网页制作模板教程
  • 企业网站开发时间淘客网站开发源代码
  • 传奇世界新开服网站html静态网页模板代码
  • 门户网站app开发网络服务提供者发现未成年通过网络发布
  • 编辑网站在线注册系统行业网站制作