大图片在屏幕中间的缩放以及如何捕获耳机声音流的捕获

本文介绍了一种实现图片缩放和平移的方法,并详细解释了如何通过MediaRecorder捕获耳机声音流。提供了具体的实现代码,包括计算缩放比例、调整图片位置以及设置声音源的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

protected void zoomTo(float scale, float centerX, float centerY) { 
    if (scale > mMaxZoom) { 
        scale = mMaxZoom; 
    } 
 
    float oldScale = getScale(); 
    float deltaScale = scale / oldScale; 
 
    mSuppMatrix.postScale(deltaScale, deltaScale, centerX, centerY); 
    setImageMatrix(getImageViewMatrix()); 
    center(true, true); 
} 

 

protected void center(boolean horizontal, boolean vertical) { 
    if (mBitmapDisplayed.getBitmap() == null) { 
        return; 
    } 
 
    Matrix m = getImageViewMatrix(); 
 
    RectF rect = new RectF(0, 0, 
            mBitmapDisplayed.getBitmap().getWidth(), 
            mBitmapDisplayed.getBitmap().getHeight()); 
 
    m.mapRect(rect); 
 
    float height = rect.height(); 
    float width  = rect.width(); 
 
    float deltaX = 0, deltaY = 0; 
 
    if (vertical) { 
        int viewHeight = getHeight(); 
        if (height < viewHeight) { 
            deltaY = (viewHeight - height) / 2 - rect.top; 
        } else if (rect.top > 0) { 
            deltaY = -rect.top; 
        } else if (rect.bottom < viewHeight) { 
            deltaY = getHeight() - rect.bottom; 
        } 
    } 
 
    if (horizontal) { 
        int viewWidth = getWidth(); 
        if (width < viewWidth) { 
            deltaX = (viewWidth - width) / 2 - rect.left; 
        } else if (rect.left > 0) { 
            deltaX = -rect.left; 
        } else if (rect.right < viewWidth) { 
            deltaX = viewWidth - rect.right; 
        } 
    } 
 
    postTranslate(deltaX, deltaY); 
    setImageMatrix(getImageViewMatrix()); 
} 

 捕获耳机声音流

MediaRecorder recorder = new MediaRecorder(); 
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_DOWNLINK); 

 

可以参看

 MediaRecorder.AudioSource   VOICE_DOWNLINK source.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值