当前位置:首页 » 安卓系统 » android下拉图片放大

android下拉图片放大

发布时间: 2022-07-01 17:24:54

1. android中如何动态修改ImageView中图片的大小 比如说点击该图片后图片能变大

使用位图(Bitmap)再重新绘制遍

//原位图

Bitmap btm1 = BitmapFactory.decodeResource(Main.this.getResources(), R.drawable.hh);

BitmapDrawable bd1=BitmapDrawable(btm1);

imageView.setBackgroundDrawable(bd1);

放大后 滑动时计算 图片的边是否在屏幕外,如果在屏幕外就可移动,比如 向上滑动,是想看图片下面的部分,此时计算图片的底边是否在屏幕外,如果是,就可以向上移动图片。

Scaletype的设置的方式包括:

1、在layout xml中定义android:scaleType="CENTER"

2、或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);

(1)android下拉图片放大扩展阅读:

根据位深度,可将位图分为1、4、8、16、24及32位图像等。每个像素使用的信息位数越多,可用的颜色就越多,颜色表现就越逼真,相应的数据量越大。

例如,位深度为 1 的像素位图只有两个可能的值(黑色和白色),所以又称为二值位图。位深度为 8 的图像有 2^8(即 256)个可能的值。位深度为 8 的灰度模式图像有 256 个可能的灰色值。

RGB图像由三个颜色通道组成。8 位/通道的 RGB 图像中的每个通道有 256 个可能的值,这意味着该图像有 1600 万个以上可能的颜色值。

有时将带有 8 位/通道 (bpc) 的 RGB 图像称作 24 位图像(8 位 x 3 通道 = 24 位数据/像素)。通常将使用24位RGB组合数据位表示的的位图称为真彩色位图。

2. android开发,实现下面图片中的背景图片放大的效果,下拉背景图片变大,松手后,可以回到原来图片大小。

滑动的时候动态改变ImageView的scaleX和scaleY就好了。比如你滑动100px需要方法1.5倍,那就在onScroll的时候计算出滑动距离,设置相应的scale。具体的可以参考下NoBoringActionbar,实现原理差不多。

3. Android中如何实现图片的放大功能(手机相册里的那种效果)

你是要代码实现还是操作?
要代码我有源代码。要是操作上的问题那就是我理解错你问题了。
/* import相关class */
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;

public class EX04_23 extends Activity
{
/* 相关变量声明 */
private ImageView mImageView;
private Button mButton01;
private Button mButton02;
private RelativeLayout layout1;
private Bitmap bmp;
private int id=0;
private int displayWidth;
private int displayHeight;
private float scaleWidth=1;
private float scaleHeight=1;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
/* 加载main.xml Layout */
setContentView(R.layout.main);

/* 取得屏幕分辨率大小 */
DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
displayWidth=dm.widthPixels;
/* 屏幕高度须扣除下方Button高度 */
displayHeight=dm.heightPixels-80;
/* 初始化相关变量 */
bmp=BitmapFactory.decodeResource(getResources(),R.drawable.ex04_23);
mImageView = (ImageView)findViewById(R.id.myImageView);
layout1 = (RelativeLayout)findViewById(R.id.layout1);
mButton01 = (Button)findViewById(R.id.myButton1);
mButton02 = (Button)findViewById(R.id.myButton2);

/* 缩小按钮onClickListener */
mButton01.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
small();
}
});

/* 放大按钮onClickListener */
mButton02.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
big();
}
});
}

/* 图片缩小的method */
private void small()
{
int bmpWidth=bmp.getWidth();
int bmpHeight=bmp.getHeight();
/* 设定图片缩小的比例 */
double scale=0.8;
/* 计算出这次要缩小的比例 */
scaleWidth=(float) (scaleWidth*scale);
scaleHeight=(float) (scaleHeight*scale);

/* 生成reSize后的Bitmap对象 */
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp = Bitmap.createBitmap(bmp,0,0,bmpWidth,bmpHeight,matrix,true);

if(id==0)
{
/* 如果是第一次按,就移除原来设定的ImageView */
layout1.removeView(mImageView);
}
else
{
/* 如果不是第一次按,就移除上次放大缩小所生成的ImageView */
layout1.removeView((ImageView)findViewById(id));
}
/* 产生新的ImageView,放入reSize的Bitmap对象,再放入Layout中 */
id++;
ImageView imageView = new ImageView(EX04_23.this);
imageView.setId(id);
imageView.setImageBitmap(resizeBmp);
layout1.addView(imageView);
setContentView(layout1);

/* 因为图片放到最大时放大按钮会disable,所以在缩小时把他重设为enable */
mButton02.setEnabled(true);
}

/* 图片放大的method */
private void big()
{
int bmpWidth=bmp.getWidth();
int bmpHeight=bmp.getHeight();
/* 设定图片放大的比例 */
double scale=1.25;
/* 计算这次要放大的比例 */
scaleWidth=(float)(scaleWidth*scale);
scaleHeight=(float)(scaleHeight*scale);

/* 产生reSize后的Bitmap对象 */
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp = Bitmap.createBitmap(bmp,0,0,bmpWidth,bmpHeight,matrix,true);

if(id==0)
{
/* 如果是第一次按,就移除原来设定的ImageView */
layout1.removeView(mImageView);
}
else
{
/* 如果不是第一次按,就移除上次放大缩小所生成的ImageView */
layout1.removeView((ImageView)findViewById(id));
}
/* 产生新的ImageView,放入reSize的Bitmap对象,再放入Layout中 */
id++;
ImageView imageView = new ImageView(EX04_23.this);
imageView.setId(id);
imageView.setImageBitmap(resizeBmp);
layout1.addView(imageView);
setContentView(layout1);

/* 如果再放大会超过屏幕大小,就把Button disable */
if(scaleWidth*scale*bmpWidth>displayWidth||scaleHeight*scale*bmpHeight>displayHeight)
{
mButton02.setEnabled(false);
}
}
}

4. android 中怎么实现多图自动轮播中间放大的效果

1,顶部轮播图,自动轮播效果。

2,顶部的viewpager 可随着下拉图片有渐变大的效果。

使用方法:
1,带轮播图的自定义ScrollView ,在项目中的名字叫ViewPagerImageScrollView,主要是通过图片的matrix.postScale(scale, scale, imgHeight/2, 0); 这个来进行当大图片。

5. android 如何实现图片放大刚开始显示正常的图片,最后要停在放大后的图片。

ANDROID有一个放大镜的图标,你点击加就放大,点击减就缩小,或者用两只手滑大滑小。

6. 您好,android里如何把图片放大超过屏幕大小和拖动呢就像相册里一样。我试过很多办法都不行。

是要编写一个这样的功能么,android提供的API里面一般图片都是Bitmap,可以通过Canvas.drawBItMap的方法在View进行图片的绘制,在方法中需要进行传入一个类型为Matrix的参数,设置Martrix的一些参数就可以进行图片的放大的绘制,这只是显示,也就是MVC中的View层,然后通过提供的一些触摸函数的重写并实现自己需要的一些功能,如拖动,实际上就是改变BitMap绘制的位置。关于触摸的处理和图片的绘制可以在网上进行一些教程的搜索,我就不罗列了,最终就是需要通过控制函数来改变图片的绘制方式,这也许就是你所需要的功能。

7. Android 怎样实现图片放大缩小,上一页,下一页

用AsynTask加载网络图片,可以看下我以前发的博客http://code.eoe.cn/1965.html。下载网络图片的代码写在MainActivity.java里面的private class DownloadTask extends AsyncTask<String, Integer, List<RowItem> >{}

8. android中有方法可以对图片进行缩放吗(不是缩放画布,是真的改变了原来图片的大小)

scaleType:CENTER /center 在视图中心显示图片,并且不缩放图片CENTER_CROP / centerCrop 按比例缩放图片,使得图片长 (宽)的大于等于视图的相应维度CENTER_INSIDE / centerInside 按比例缩放图片,使得图片长 (宽)的小于等于视图的相应维度FIT_CENTER / fitCenter 按比例缩放图片到视图的最小边,居中显示FIT_END / fitEnd 按比例缩放图片到视图的最小边,显示在视图的下部分位置FIT_START / fitStart 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置FIT_XY / fitXY 把图片不按比例缩放到视图的大小显示MATRIX / matrix 用矩阵来绘制 到安卓巴士网站查看回答详情>>

9. android 图片放大预览怎么做

那就弹出一个dialog,设置dialog.setContentView(imageView);当然也可以自定义dialog的布局

热点内容
app什么情况下找不到服务器 发布:2025-05-12 15:46:25 浏览:714
php跳过if 发布:2025-05-12 15:34:29 浏览:467
不定时算法 发布:2025-05-12 15:30:16 浏览:131
c语言延时1ms程序 发布:2025-05-12 15:01:30 浏览:165
动物园灵长类动物配置什么植物 发布:2025-05-12 14:49:59 浏览:734
wifi密码设置什么好 发布:2025-05-12 14:49:17 浏览:148
三位数乘两位数速算法 发布:2025-05-12 13:05:48 浏览:397
暴风影音缓存在哪里 发布:2025-05-12 12:42:03 浏览:541
access数据库exe 发布:2025-05-12 12:39:04 浏览:628
五开的配置是什么 发布:2025-05-12 12:36:37 浏览:365