股票软件上面的字怎么样才能缩小cad放大缩小快捷键不移位

2064人阅读
android(26)
package com.android.
import android.content.C
import android.graphics.B
import android.graphics.BitmapF
import android.graphics.C
import android.graphics.C
import android.graphics.M
import android.graphics.P
import android.util.AttributeS
import android.util.FloatM
import android.view.MotionE
import android.view.SurfaceH
import android.view.SurfaceV
public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback,Runnable{
private SurfaceHolder holder= //控制对象
Matrix savedM
public MySurfaceView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
holder=getHolder();
holder.addCallback(this);
public MySurfaceView(Context context, AttributeSet attrs) {
super(context, attrs);
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.i);
bitmapWidth = bitmap.getWidth();
bitmapHeight = bitmap.getHeight();
matrix = new Matrix();
matrix.setTranslate(0f, 0f);
savedMatrix = new Matrix();
savedMatrix.setTranslate(0f, 0f);
holder=getHolder();
holder.addCallback(this);
float oldDistance,newDistance,oldA
private final int DRAG = 1;
private final int ZOOM = 2;
private final int NONE = 3;
private final int flagCount = 5;
private int action = NONE;
Point startPoint = new Point();
Point currentPoint = new Point();
Point midPoint = new Point();
Point pointM
Paint paint = new Paint();
private Point bitmapLeftTop,bitmapRightB
private float fontScale = 1;
private float fontTransX = 0;
private float fontTransY = 0;
float leftSide,topSide,fontX,fontY;
private float bitmapWidth,bitmapH
Point textP
private int screenWidth,screenH
//判断手势
public boolean onTouchEvent(MotionEvent event)
switch(event.getAction() & MotionEvent.ACTION_MASK)
case MotionEvent.ACTION_DOWN:
// 第一个手指touch
startPoint.x = event.getX();
startPoint.y = event.getY();
flag =flagCount - 3;
action = DRAG;
case MotionEvent.ACTION_POINTER_DOWN:
// 第二个手指touch
oldDistance = getDistance(event);
// 计算第二个手指touch时,两指之间的距离
if(oldDistance&10f){
action = ZOOM;
savedMatrix.set(matrix);
midPoint = pointMid(event);
case MotionEvent.ACTION_UP:
action = NONE;
case MotionEvent.ACTION_POINTER_UP:
System.out.println(&ACTION_POINTER_UP&);
action = DRAG;
case MotionEvent.ACTION_MOVE:
System.out.println(&move&);
if(action == DRAG){
onDrag(event);
if(action == ZOOM){
onZoom(event);
//拖动函数
public void onDrag(MotionEvent event){
matrix.set(savedMatrix);
currentPoint.setXY(event.getX(), event.getY());
if(flag & flagCount){
matrix.postTranslate((float)(currentPoint.x-startPoint.x), (float)(currentPoint.y-startPoint.y));
//累计的移动量
fontTransX += (currentPoint.x-startPoint.x);
fontTransY+=(currentPoint.y-startPoint.y);
//当前textPoint的值
textPoint.setXY(textPoint.x+currentPoint.x-startPoint.x, textPoint.y+currentPoint.y-startPoint.y);
Canvas c=holder.lockCanvas();
c.drawColor(Color.WHITE);
c.drawBitmap(bitmap, matrix, paint);
paint.setTextSize(10*fontScale);
c.drawText(&hello&, textPoint.x, textPoint.y, paint);
holder.unlockCanvasAndPost(c);
startPoint.setPoint(currentPoint);
savedMatrix.set(matrix);
//缩放函数
public void onZoom(MotionEvent event){
newDistance = getDistance(event);
// 计算第二个手指touch时,两指之间的距离
if(newDistance&10f){
matrix.set(savedMatrix);
scale = (oldDistance+((newDistance-oldDistance)/2)) / oldD
matrix.postScale(scale, scale, midPoint.x, midPoint.y);
fontScale *=
//缩放的中心点和textPoint的距离,在一次缩放过程中保持不变
float distance = getXYDistance(midPoint, textPoint);
float sina = (textPoint.y-midPoint.y)/
float cosa = (textPoint.x-midPoint.x)/
distance*=
textPoint.x = distance*cosa+midPoint.x;
textPoint.y = distance*sina+midPoint.y;
oldDistance = newD
Canvas c=holder.lockCanvas();
paint.setTextSize(10*fontScale);
c.drawColor(Color.WHITE);
c.drawBitmap(bitmap, matrix, paint);
c.drawText(&hello&, textPoint.x, textPoint.y, paint);
holder.unlockCanvasAndPost(c);
savedMatrix.set(matrix);
/* float[] matrixValues = new float[9];
matrix.getValues(matrixValues);
oldDistance = newD
Canvas c=holder.lockCanvas();
c.drawColor(Color.WHITE);
fontScale *=
//左边界和上边界
leftSide = midPoint.x-fontScale*(midPoint.x - matrixValues[2]);
topSide = midPoint.y-fontScale*(midPoint.y - matrixValues[5]);
bitmapHeight*=fontS
bitmapWidth*=fontS
System.out.println(&fontTransX&+fontTransX);
paint.setTextSize(20*fontScale);
//c.drawText(&hello&, 100, 100, paint);
c.drawBitmap(bitmap, matrix, paint);
float fontX = leftSide+bitmapWidth/3f;
float fontY = topSide+bitmapHeight/3f;
System.out.println(&fontX&+fontX+&:::&+fontY);
c.drawText(&hello&, fontX, fontY, paint);
holder.unlockCanvasAndPost(c);
savedMatrix.set(matrix);*/
public void onNone(MotionEvent event){
System.out.println(&NONE&);
private float getDistance(MotionEvent event)
float x = event.getX(0) - event.getX(1);
float y = event.getY(0) - event.getY(1);
return FloatMath.sqrt(x * x + y * y);
private Point pointMid(MotionEvent event)
pointMid = new Point();
pointMid.x = event.getX(0) + event.getX(1);
pointMid.y = event.getY(0) + event.getY(1);
pointMid.setXY(pointMid.x /2f, pointMid.y /2f);
return pointM
/* private float getDegree(MotionEvent event)
return (float)(Math.atan((event.getY(1) - event.getY(0)) / (event.getX(1) - event.getX(0))) * 180f);
// 创建新的图片
//Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,width, height, matrix, true);
public float getXYDistance(Point p1,Point p2){
float x = (p1.x-p2.x)*(p1.x-p2.x);
float y = (p1.y-p2.y)*(p1.y-p2.y);
return (float) Math.sqrt(x+y);
//接口函数实现
public void surfaceCreated(SurfaceHolder holder) {
new Thread(this).start();
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
public void surfaceDestroyed(SurfaceHolder holder) {
//初始化线程
public void run() {
//获得屏幕参数
/* WindowManager windowManager = new Activity().getWindowManager();
Display display = windowManager.getDefaultDisplay();
screenWidth = display.getWidth();
screenHeight = display.getHeight();*/
bitmapLeftTop = new Point(150f,150f);
textPoint = new Point(100+bitmapWidth/3f,100+bitmapHeight/3f);
matrix.setTranslate(bitmapLeftTop.x, bitmapLeftTop.y);
savedMatrix.set(matrix);
Canvas c=holder.lockCanvas();
c.drawColor(Color.WHITE);
c.drawBitmap(bitmap, matrix, new Paint());
float[] matrixValues = new float[9];
matrix.getValues(matrixValues);
for(int i=0;i&9;i++){
System.out.println(matrixValues[i]);
c.drawText(&hello&, textPoint.x, textPoint.y, new Paint());
holder.unlockCanvasAndPost(c);
class Point {
public Point() {
public void setPoint(Point point){
this.x = point.x;
this.y = point.y;
public Point(float x, float y) {
public void setXY(float xx,float yy){
public float getX() {
public void setX(float x) {
public float getY() {
public void setY(float y) {
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:149466次
积分:2533
积分:2533
排名:第11298名
原创:92篇
转载:28篇
评论:17条
(1)(1)(2)(1)(1)(2)(7)(10)(10)(9)(6)(1)(9)(7)(3)(14)(35)(1)(1)东方财富通炒股软件哪个键是k线图缩小放大-中国学网-中国IT综合门户网站
> 信息中心 >
东方财富通炒股软件哪个键是k线图缩小放大
来源:互联网 发表时间: 15:48:34 责任编辑:李志喜字体:
为了帮助网友解决“东方财富通炒股软件哪个键是k线图缩小放大”相关的问题,中国学网通过互联网对“东方财富通炒股软件哪个键是k线图缩小放大”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:东方财富通炒股软件哪个键是k线图缩小放大键,具体解决方案如下:解决方案1:如标题解决方案2:一般都是上下键解决方案3:谢谢!
1个回答1个回答1个回答5个回答4个回答2个回答2个回答2个回答3个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号

我要回帖

更多关于 鼠标滚轮变成放大缩小 的文章

 

随机推荐