热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android.graphics.Matrix.setPolyToPoly()方法的使用及代码示例

本文整理了Java中android.graphics.Matrix.setPolyToPoly()方法的一些代码示例,展示了Matrix.setPolyTo

本文整理了Java中android.graphics.Matrix.setPolyToPoly()方法的一些代码示例,展示了Matrix.setPolyToPoly()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Matrix.setPolyToPoly()方法的具体详情如下:
包路径:android.graphics.Matrix
类名称:Matrix
方法名:setPolyToPoly

Matrix.setPolyToPoly介绍

暂无

代码示例

代码示例来源:origin: vondear/RxTool

final int height = getHeight();
matrix.setPolyToPoly(
new float[]{
0.f, 0.f, // top left

代码示例来源:origin: google/cameraview

final int height = getHeight();
matrix.setPolyToPoly(
new float[]{
0.f, 0.f, // top left

代码示例来源:origin: davemorrissey/subsampling-scale-image-view

setMatrixArray(dstArray, tile.vRect.left, tile.vRect.bottom, tile.vRect.left, tile.vRect.top, tile.vRect.right, tile.vRect.top, tile.vRect.right, tile.vRect.bottom);
matrix.setPolyToPoly(srcArray, 0, dstArray, 0, 4);
canvas.drawBitmap(tile.bitmap, matrix, bitmapPaint);
if (debug) {

代码示例来源:origin: InnoFang/Android-Code-Demos

private void resetPolyMatrix(int pointCount) {
mMatrix.reset();
mMatrix.setPolyToPoly(mSrc, 0, mDst, 0, pointCount);
}

代码示例来源:origin: luhaoaimama1/zone-sdk

private void ployOne(Canvas canvas) {
canvas.save();
float[] src = {0, 0, // 左上
bt.getWidth(), 0, // 右上
bt.getWidth(), bt.getHeight(), // 右下
0, bt.getHeight()}; // 左下
float[] dst = {0+100, 0, // 左上
bt.getWidth(),50, // 右上
bt.getWidth(), bt.getHeight() -50, // 右下
0, bt.getHeight()}; // 左下
Matrix ploy=new Matrix();
ploy.setPolyToPoly(src,0,dst,0,1);
canvas.drawBitmap(bt,ploy, paint);
canvas.restore();
}

代码示例来源:origin: luhaoaimama1/zone-sdk

private void ploy(Canvas canvas,int number) {
canvas.save();
float[] src = {0, 0, // 左上
bt.getWidth(), 0, // 右上
bt.getWidth(), bt.getHeight(), // 右下
0, bt.getHeight()}; // 左下
float[] dst = {0, 0, // 左上
bt.getWidth(),50, // 右上
bt.getWidth(), bt.getHeight() -50, // 右下
0, bt.getHeight()}; // 左下
Matrix ploy=new Matrix();
ploy.setPolyToPoly(src,0,dst,0,number);
canvas.drawBitmap(bt,ploy, paint);
canvas.restore();
}
private void ployTWO(Canvas canvas) {

代码示例来源:origin: luhaoaimama1/zone-sdk

private void ployTWO(Canvas canvas) {
canvas.save();
float[] src = {0, 0, // 左上
bt.getWidth(), 0, // 右上
bt.getWidth(), bt.getHeight(), // 右下
0, bt.getHeight()}; // 左下
float[] dst = {0, 0, // 左上
bt.getWidth(),50, // 右上
bt.getWidth(), bt.getHeight() -50, // 右下
0, bt.getHeight()}; // 左下
Matrix ploy=new Matrix();
ploy.setPolyToPoly(src,0,dst,0,2);
canvas.drawBitmap(bt,ploy, paint);
canvas.restore();
}
private void ployOne(Canvas canvas) {

代码示例来源:origin: qiubiteme/android_api_demos

private void doDraw(Canvas canvas, float src[], float dst[]) {
canvas.save();
mMatrix.setPolyToPoly(src, 0, dst, 0, src.length >> 1);
canvas.concat(mMatrix);
mPaint.setColor(Color.GRAY);
mPaint.setStyle(Paint.Style.STROKE);
canvas.drawRect(0, 0, 64, 64, mPaint);
canvas.drawLine(0, 0, 64, 64, mPaint);
canvas.drawLine(0, 64, 64, 0, mPaint);
mPaint.setColor(Color.RED);
mPaint.setStyle(Paint.Style.FILL);
// how to draw the text center on our square
// centering in X is easy... use alignment (and X at midpoint)
float x = 64/2;
// centering in Y, we need to measure ascent/descent first
float y = 64/2 - (mFontMetrics.ascent + mFontMetrics.descent)/2;
canvas.drawText(src.length/2 + "", x, y, mPaint);
canvas.restore();
}

代码示例来源:origin: THEONE10211024/ApiDemos

private void doDraw(Canvas canvas, float src[], float dst[]) {
canvas.save();
mMatrix.setPolyToPoly(src, 0, dst, 0, src.length >> 1);
canvas.concat(mMatrix);
mPaint.setColor(Color.GRAY);
mPaint.setStyle(Paint.Style.STROKE);
canvas.drawRect(0, 0, 64, 64, mPaint);
canvas.drawLine(0, 0, 64, 64, mPaint);
canvas.drawLine(0, 64, 64, 0, mPaint);
mPaint.setColor(Color.RED);
mPaint.setStyle(Paint.Style.FILL);
// how to draw the text center on our square
// centering in X is easy... use alignment (and X at midpoint)
float x = 64/2;
// centering in Y, we need to measure ascent/descent first
float y = 64/2 - (mFontMetrics.ascent + mFontMetrics.descent)/2;
canvas.drawText(src.length/2 + "", x, y, mPaint);
canvas.restore();
}

代码示例来源:origin: InnoFang/Android-Code-Demos

private void initUMR() {
mUMRBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.umr);
mUMRMatrix = new Matrix();
float[] src = {
0, 0, // 左上
mUMRBitmap.getWidth(), 0, // 右上
mUMRBitmap.getWidth(), mUMRBitmap.getHeight(), // 右下
0, mUMRBitmap.getHeight(), // 左下
};
float[] dst = {
0, 0, // 左上
mUMRBitmap.getWidth(), -200, // 右上
mUMRBitmap.getWidth(), mUMRBitmap.getHeight() + 100, // 右下
0, mUMRBitmap.getHeight(), // 左下
};
mUMRMatrix.setPolyToPoly(src, 0, dst, 0, src.length >> 1);
mUMRMatrix.postScale(0.5f, 0.5f);
mUMRMatrix.postTranslate(100, 830);
}

代码示例来源:origin: saki4510t/libcommon

/**
*
* @param src (x,y) pair, 4 pairs (4 points) = float[8]
* @param dst (x,y) pair, 4 pairs (4 points) = float[8]
*/
public void calcPerspectiveTransform(final float[] src, final float[] dst) {
// if (DEBUG) Log.v(TAG, "calcPerspectiveTransform:");
mat.reset(); // これはいらん?
mat.setPolyToPoly(src, 0, dst, 0, 4);
mat.getValues(m);
((MediaEffectTexProjectionDrawer)mDrawer).setTexProjection(m);
}

代码示例来源:origin: Kalabasa/FreeformGestureDetector

private void applyUpdate(MotionEvent ev) {
int n = pointerLocations.size();
for (int i = 0; i int pointerId = pointerIdMap[i];
PointF point = pointerLocations.get(pointerId);
record[n * 2 + i * 2] = point.x;
record[n * 2 + i * 2 + 1] = point.y;
}
for (int i = Math.min(maxPointers, n); i > 0; i--) {
if (tmpMatrix.setPolyToPoly(record, 0, record, n * 2, i)) {
matrix.postConcat(tmpMatrix);
if (pastSlop) sendTransform(ev);
break;
}
}
}

代码示例来源:origin: InnoFang/Android-Code-Demos

private void init() {
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.umr);
float[] src = {
0, 0,
mBitmap.getWidth(), 0,
mBitmap.getWidth(), mBitmap.getHeight(),
0, mBitmap.getHeight()
};
mSrc = src.clone();
mDst = src.clone();
mPointPaint = new Paint();
mPointPaint.setAntiAlias(true);
mPointPaint.setStrokeWidth(50);
mPointPaint.setColor(Color.RED);
mPointPaint.setStrokeCap(Paint.Cap.ROUND);
mMatrix = new Matrix();
mMatrix.setPolyToPoly(mSrc, 0, mDst, 0, 4);
}

代码示例来源:origin: InnoFang/Android-Code-Demos

private void initBitmapAndMatrix() {
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.meizhi);
mPolyMatrix = new Matrix();
float[] src = {
0, 0, // 左上
mBitmap.getWidth(), 0, // 右上
mBitmap.getWidth(), mBitmap.getHeight(), // 右下
0, mBitmap.getHeight(), // 左下
};
float[] dst = {
0, 0, // 左上
mBitmap.getWidth(), 200, // 右上
mBitmap.getWidth(), mBitmap.getHeight() - 400, // 右下
0, mBitmap.getHeight(), // 左下
};
// 核心要点
mPolyMatrix.setPolyToPoly(
src, /*原始数组,存储内容为一组点*/
0, /*原始数组开始位置*/
dst, /*目标数组,存储内容为一组点*/
0, /*目标数组开始位置*/
src.length >> 1); /*测控点的数量,取值范围是:0到4*/
mPolyMatrix.postScale(0.26f, 0.26f);
mPolyMatrix.postTranslate(50, 10);
}

代码示例来源:origin: luhaoaimama1/zone-sdk

private void prepare() {
mFlodWidth = Math.round(bt.getWidth() / clipNums);
mFlodTransalteWidth = Math.round(bt.getWidth() * foldProgress / clipNums);
//纵轴减小的那个高度,用勾股定理计算下
int depth = (int) ((Math.sqrt(mFlodWidth * mFlodWidth
- mFlodTransalteWidth * mFlodTransalteWidth)) * depthFactor);
//1.所有的变形matrix
for (int i = 0; i if (matrixs[i] != null)
matrixs[i].reset();
else
matrixs[i] = new Matrix();
float[] src = MatrixUtils.getVertices(i * mFlodWidth, 0,
(i + 1) * mFlodWidth, bt.getHeight());
float[] dst = MatrixUtils.getVertices(i * mFlodTransalteWidth, 0,
(i + 1) * mFlodTransalteWidth, bt.getHeight());
if (i % 2 == 0) {//右边下坠
dst[3] += depth;
dst[5] -= depth;
} else {//左边下坠
dst[1] += depth;
dst[7] -= depth;
}
matrixs[i].setPolyToPoly(src, 0, dst, 0, 4);
}
}

代码示例来源:origin: luhaoaimama1/zone-sdk

dst[7] -= depth;
matrixs[i].setPolyToPoly(src, 0, dst, 0, 4);

代码示例来源:origin: Android500/AwesomeDrawer

mMatrix[x].setPolyToPoly(mSrc, 0, mDst, 0, NUM_OF_POLY_POINTS / 2);

代码示例来源:origin: Android500/AwesomeDrawer

mMatrix[x].setPolyToPoly(mSrc, 0, mDst, 0, NUM_OF_POLY_POINTS / 2);

代码示例来源:origin: duanhong169/Camera

final int height = getHeight();
matrix.setPolyToPoly(
new float[]{
0.f, 0.f, // top left

代码示例来源:origin: RameshBhupathi/ImagePicker-OLX

final int height = getHeight();
matrix.setPolyToPoly(
new float[]{
0.f, 0.f, // top left

推荐阅读
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
author-avatar
HurricaneCC
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有