问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Android 编程 如何实现 文字放大效果 例如图片的放大和缩小的效果

发布网友 发布时间:2022-04-26 19:34

我来回答

5个回答

热心网友 时间:2023-10-24 11:47

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.PointF;
import android.os.Bundle;
import android.util.FloatMath;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.ImageView;

public class MainActivity extends Activity implements OnTouchListener {
/** Called when the activity is first created. */

// 放大缩小
Matrix matrix = new Matrix();
Matrix savedMatrix = new Matrix();

PointF start = new PointF();
PointF mid = new PointF();
float oldDist;

private ImageView myImageView;

// 模式
static final int NONE = 0;
static final int DRAG = 1;
static final int ZOOM = 2;
int mode = NONE;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

myImageView = (ImageView) findViewById(R.id.myImage);
myImageView.setOnTouchListener(this);

}

@Override
public boolean onTouch(View v, MotionEvent event) {
ImageView myImageView = (ImageView) v;
switch (event.getAction() & MotionEvent.ACTION_MASK) {
// 设置拖拉模式
case MotionEvent.ACTION_DOWN:
matrix.set(myImageView.getImageMatrix());
savedMatrix.set(matrix);
start.set(event.getX(), event.getY());
mode = DRAG;
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_POINTER_UP:
mode = NONE;
break;

// 设置多点触摸模式
case MotionEvent.ACTION_POINTER_DOWN:
oldDist = spacing(event);
if (oldDist > 10f) {
savedMatrix.set(matrix);
midPoint(mid, event);
mode = ZOOM;
}
break;
// 若为DRAG模式,则点击移动图片
case MotionEvent.ACTION_MOVE:
if (mode == DRAG) {
matrix.set(savedMatrix);
matrix.postTranslate(event.getX() - start.x, event.getY()
- start.y);
}
// 若为ZOOM模式,则点击触摸缩放
else if (mode == ZOOM) {
float newDist = spacing(event);
if (newDist > 10f) {
matrix.set(savedMatrix);
float scale = newDist / oldDist;
// 设置硕放比例和图片的中点位置
matrix.postScale(scale, scale, mid.x, mid.y);
}
}
break;
}
myImageView.setImageMatrix(matrix);
return true;
}

// 计算移动距离
private float spacing(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 void midPoint(PointF point, MotionEvent event) {
float x = event.getX(0) + event.getX(1);
float y = event.getY(0) + event.getY(1);
point.set(x / 2, y / 2);
}
}

热心网友 时间:2023-10-24 11:48

需要在当前页面添加手势识别,然后根据手势识别的效果再设定文字的字体大小。
没有插件可做到这样的效果。追问有没有这方面的例子呢,能给我一份吗,谢谢

追答没有。

热心网友 时间:2023-10-24 11:48

这种功能需要使用print绘制,然后通过多点触控事件来自行计算用户是需要放大还是缩小,然后对应的去设置文字大小

热心网友 时间:2023-10-24 11:49

换一个编写程序

热心网友 时间:2023-10-24 11:50

ScrollView不能实现么追问不太明白你的意思。可否详细些呢?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
光线为什么不存在 炒菜时要等到油冒烟吗 高考数学选修没涂有分吗? 高考选修不涂有分数吗 《宫》中插曲是什么乐器演奏的? 电视剧《宫》的主题曲和片尾曲分别是什么? 爱我的人和我爱的人原唱是裘海正还是游鸿明 刑法对追诉时效的规定 刑事案件追诉期限的法律规定是什么? 爱奇艺海外版怎么下载 Android 缩放一个Imageview控件中中心点问题 android ImageView控件 图片如何铺满整个控件 android ImageView图片缩放至屏幕大小 android如何对viewpager里面的图片进行缩放 android bitmap 图片缩放问题 Android 中关于ImageView.setImageViewMatrix(matrix)的问题 android中有方法可以对图片进行缩放吗?(不是缩放画布,是真的改变了原来图片的大小) android 如何实现对view的放大和缩小 android等比例缩放图片的方法 如何隐藏Android WebView 缩放控件 android ImageView控件,图片如何铺满整个控件? Android 如何通过帽子右下角的按钮来控制图片的缩放和旋转 android如何设置图片自适应控件大小 蒙古国 大使馆 中国现在有多少个国家承认学历的大学 蒙古国教育大学情况如何 蒙古国文化艺术大学在中国承认吗? 去蒙古国留学 读硕士学位,回国是否承认硕士学位? 蒙古国留学拿到肄业证书能办国外留学生学历学位认证吗 蒙古国师范大学博士中国承认吧 android开发中如何设置ImageButton的大小 android checkbox背景图片缩放问题 android画一张图片,缩放显示并且放大不失真 android里面button的背景图片大小怎么能根据button大小缩放 红灯掉头扣几分 红灯掉头算不算闯红灯图解 红灯车辆能调头吗? 请问对面红灯,我的汽车不越斑马线能否直接调头? 直行和左转都是红灯的路口是否能掉头? 学校食堂生鲜食材统一采购方案? 如何对食堂食材的质量控制 食堂采购管理 食堂采购采购档案怎么做 食堂食材采购分包合理吗 VO∨G是啥手机? 中国和日本近五年的通货膨胀率各是多少 求1999-2010年我国通货膨胀率、名义GDP、实际GDP的历年数据! 拉夏贝尔爆单,员工连夜发货,你如何看待这件事? 拉夏贝尔被申请破产清算,公司该如何自救? 拉夏贝尔