android下拉圖片放大
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的布局