Ⅰ 我的手機是安卓手機,怎麼能把圖庫裡面的照片縮小比例保存就比如這張圖片,怎麼給他縮小二分之一保存下
下載p圖的軟體
Ⅱ android如何設置圖片自適應控制項大小
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/ic_launcher"/>
寬度和高度使用fill_parent (填充父窗體)
fill_parent 可以使控制項充滿父控制項,也就是你說的自動使用圖片控制項外的控制項大小。
Ⅲ hellocharts-android-Hellocharts 怎麼設置縮放比例,縮放級別
固定imageview的大小後用一個屬性來設置ScaleType這個就是設置圖片的載入模式ImageView的Scaletype決定了圖片在View上顯示時的樣子,如進行何種比例的縮放,及顯示圖片的整體還是部分,等等。設置的方式包括:1.在layoutxml中定義android:scaleType="CENTER"2.或在代碼中調用imageView.setScaleType(ImageView.ScaleType.CENTER);接下來,將對ScaleType的值和對應的顯示效果用最直觀的方式——真圖演示的兆扮方法,來進行說明。首先,是測試使用的原始圖片:(Dimensions:128*128)(Dimensions:640*428)好,開始下面的測試:1.SetScaleType(ImageView.ScaleType.CENTER);按圖片的原來size居中顯示,當圖片長/寬超過View的長/寬,則截取圖片的居中部分顯示2.SetScaleType(ImageView.ScaleType.CENTER_CROP);按比例擴大圖片的size居中顯示,使得圖片長(寬)等於或大於View的長(寬)3.setScaleType(ImageView.ScaleType.CENTER_INSIDE);將圖片的內容完整居中顯示,通過按比例縮小或原來的size使得圖片長/寬等於或小於View的長/寬4.setScaleType(ImageView.ScaleType.FIT_CENTER);把圖片按比例擴大/縮小到View的寬度,居中顯示5.FIT_START,FIT_END在圖片縮放效果上與FIT_CENTER一樣,只是顯示的位置不同,FIT_START是置於頂部,FIT_CENTER居中,FIT_END置於底部。在此就不給出示例了啟猜基。6.FIT_XY不按比例縮放圖片,目標是悄謹把圖片塞滿整個View。
Ⅳ android為什麼縮放比例opts.inSampleSize為1,2,3時候圖片大小沒改變
這個。。。。
Imageview 有個scale屬性,是不是設置了填充滿控制項而不是實際大小,你這個測試方法有問題,渣旦查看是不是bitmap寬高變化了可以型好列印啊,bitmap.getWidth 而不是這么看。。如租擾。。
Ⅳ android等比例縮放圖片的方法
itmap icon = null;//原始圖片
int width = icon.getWidth(), height = icon.getHeight();
float scaleRate = 0.8f;//縮小的比例
while(width >= 300 || width >= 300) {
Matrix matrix = new Matrix();
matrix.postScale(width * scaleRate, height * scaleRate);
// 得到新的圖片
Bitmap newIcon = Bitmap.createBitmap(icon, 0, 0, width, height, matrix, true);
icon.recycle();
icon = newIcon;
width = icon.getWidth(), height = icon.getHeight();
}int width = icon.getWidth(), height = icon.getHeight();
if(width > 300 || width > 300) {
float scaleRate = width > height ? 300 / width : 300 / height;
Matrix matrix = new Matrix();
matrix.postScale(width * scaleRate, height * scaleRate);
// 得到新的圖片
Bitmap newIcon = Bitmap.createBitmap(icon, 0, 0, width, height, matrix, true);
icon.recycle();
icon = newIcon;
}
Ⅵ android中ImageView放大和縮小相關問題
1、如果只是想根據圖片的大小來改變imageview的大小直接把imageview的屬性設置為
android:layout_width="match_parent"
android:layout_height="wrap_content"
2、如果想要把整個imageview放大,用
放大的動畫把你這個imageview放大
scaleanimation
animation
=new
scaleanimation(0.0f,
1.4f,
0.0f,
1.4f,
animation.relative_to_self,
0.5f,
animation.relative_to_self,
0.5f);
animation.setration(2000);//設置動畫持續時間
image.setanimation(animation);
Ⅶ android圖片壓縮避免OOM
簡單吹下牛:很多app都會要載入圖片,但是如果不壓縮圖片就很容易OOM,
個人看來OOM 出現原因總的來說分為兩種:
一種是內存溢出(好像在扯淡,OOM本身就是內存溢出)
另一種是:圖片過大,一個屏幕顯示不完全造成,似乎也是一。。 如有錯誤純屬扯淡;
為了避免上面的情況:載入圖片的時候可以進行壓縮,上傳的時候要可以進行壓縮,在圖片不可見的時候進行回收(onDetach()),再吹一句 用了fresco+壓縮之後載入圖片完全沒問題了。
一、質量壓縮方法:
privateBitmap compressImage(Bitmap image) {
ByteArrayOutputStream baos =newByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG,100, baos);//質量壓縮方法,這里100表示不壓縮,把壓縮後的數據存放到baos中
intoptions =100;
while( baos.toByteArray().length /1024>100) {//循環判斷如果壓縮後圖片是否大於100kb,大於繼續壓縮
baos.reset();//重置baos即清空baos
image.compress(Bitmap.CompressFormat.JPEG, options, baos);//這里壓縮options%,把壓縮後的數據存放到baos中
options -=10;//每次都減少10
}
ByteArrayInputStream isBm =newByteArrayInputStream(baos.toByteArray());//把壓縮後的數據baos存放到ByteArrayInputStream中
Bitmap bitmap = BitmapFactory.decodeStream(isBm,null,null);//把ByteArrayInputStream數據生成圖片
returnbitmap;
}
二、圖片按比例大小壓縮方法(根據Bitmap圖片壓縮)
privateBitmap comp(Bitmap image) {
ByteArrayOutputStream baos =newByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG,100, baos);
if( baos.toByteArray().length /1024>1024) {//判斷如果圖片大於1M,進行壓縮避免在生成圖片(BitmapFactory.decodeStream)時溢出
baos.reset();//重置baos即清空baos
image.compress(Bitmap.CompressFormat.JPEG,50, baos);//這里壓縮50%,把壓縮後的數據存放到baos中
}
ByteArrayInputStream isBm =newByteArrayInputStream(baos.toByteArray());
BitmapFactory.Options newOpts =newBitmapFactory.Options();
//開始讀入圖片,此時把options.inJustDecodeBounds 設回true了
newOpts.inJustDecodeBounds =true;
Bitmap bitmap = BitmapFactory.decodeStream(isBm,null, newOpts);
newOpts.inJustDecodeBounds =false;
intw = newOpts.outWidth;
inth = newOpts.outHeight;
//現在主流手機比較多是800*480解析度,所以高和寬我們設置為
floathh = 800f;//這里設置高度為800f
floatww = 480f;//這里設置寬度為480f
//縮放比。由於是固定比例縮放,只用高或者寬其中一個數據進行計算即可
intbe =1;//be=1表示不縮放
if(w > h && w > ww) {//如果寬度大的話根據寬度固定大小縮放
be = (int) (newOpts.outWidth / ww);
}elseif(w < h && h > hh) {//如果高度高的話根據寬度固定大小縮放
be = (int) (newOpts.outHeight / hh);
}
if(be <=0)
be =1;
newOpts.inSampleSize = be;//設置縮放比例
//重新讀入圖片,注意此時已經把options.inJustDecodeBounds 設回false了
isBm =newByteArrayInputStream(baos.toByteArray());
bitmap = BitmapFactory.decodeStream(isBm,null, newOpts);
returncompressImage(bitmap);//壓縮好比例大小後再進行質量壓縮
}
Ⅷ android畫一張圖片,縮放顯示並且放大不失真
這個問題涉及圖片呈現的一整套方案。歸納而言這個問題是:給定任意尺寸的圖片如何在任意尺寸解析度的機器上顯示?並且能夠保持圖片原來的清晰度。一般採用如下方案來解決這個問題:
1、首先給原圖片創建一塊內存緩存副本。如果不創建緩存的話,那麼任何一次圖片的剪切、縮放等操作都將丟失圖片信息,使得保持原有圖片的滋味那是不可能的。當然對於一般的程序而言,這個操作只需要調用簡單的API即可完成。例如Android,只需要創建一個對應圖片的Bitmap對象即可。
2、如果想要在設備顯示的初始化狀態圖片即為滿屏,那麼必須調用相關API動態獲得設備的解析度。然後按設備解析度的大小對圖片進行剪切並顯示到設備上。
注意:在獲得圖片解析度後,如果解析度大於圖片,那不用說,直接顯示圖片就好。但是如果小於圖片,此時有多種選擇。可以將圖片縮放至屏幕解析度(圖片縱橫比可能失真)也可以選擇剪切圖片的一部分顯示到屏幕上。
3、對圖片進行縮放或者移動
我們在圖片第一次顯示的時候無論是選擇縮放還是剪切,都要記錄下圖片被縮放的比例或者剪輯的范圍。這樣在用戶再次移動或者縮放的時候,根據之前的縮放比例和移動坐標,計算當前應該移動的位置和縮放比例。並且根據計算結果對緩存的圖片進行剪輯並顯示到屏幕上。
其實整個過程可以概括為如下流程:
——>圖片的初始縮放比例和顯示起點坐標——>用戶觸發縮放或者移動操作——>計算新的圖片縮放比例和顯示起點坐標——>根據新的縮放比例和顯示起點坐標剪輯緩存圖片並繪制到屏幕上......
Ⅸ hellocharts-android-Hellocharts 怎麼設置縮放比例,縮放級別
hellocharts-android-Hellocharts 設置縮放比例,縮放級塵如別方法:
Viewport tempViewport = new Viewport(0, chart.getMaximumViewport().height(), 9, 0) ;
chart.setCurrentViewport(tempViewport);/輪兄襪/setCurrentViewport(tempViewport1, false);
即:
new Viewport(float left, float top, float right, float bottom)
left:臘激0//X軸為0
top: chart.getMaximumViewport()//Y軸的最大值
right: 9//X軸顯示9列
bottom:0//Y軸為0
Ⅹ android中imageview里的圖片大小是否可以比imageview本身大,如果可以,如何設置
ImageView可以放大縮小,也可以通過Scaletype這個屬性來指定。
Scaletype的設置的方式包括:
1. 在layout xml中定義android:scaleType="CENTER"
2. 或在代碼中調用imageView.setScaleType(ImageView.ScaleType.CENTER);
Scaletype的取值和區別:
1. SetScaleType(ImageView.ScaleType.CENTER);
按圖片的原來size居中顯示,當圖片長/寬超過View的長/寬,則截取圖片的居中部分顯示
2. SetScaleType(ImageView.ScaleType.CENTER_CROP);
按比例擴大圖片的size居中顯示,使得圖片長(寬)等於或大於View的長(寬)
3. setScaleType(ImageView.ScaleType.CENTER_INSIDE);
將圖片的內容完整居中顯示,通過按比例縮小或原來的size使得圖片長/寬等於或小於View的長/寬
4. setScaleType(ImageView.ScaleType.FIT_CENTER);
把圖片按比例擴大/縮小到View的寬度,居中顯示
5. FIT_START, FIT_END在圖片縮放效果上與FIT_CENTER一樣,只是顯示的位置不同,FIT_START是置於頂部,FIT_CENTER居中,FIT_END置於底部。
在此就不給出示例了。
6. FIT_XY
不按比例縮放圖片,目標是把圖片塞滿整個View。