編輯:關於Android編程
在Android的UI開發中經常會遇到圖片的縮放,就比如記事本,現在的圖片都比較大,如果將原圖不經縮放直接放在屏幕上,則會占滿整個屏幕,而且有時圖片會比屏幕還大,這時就不能完全的顯示整個圖片,所以,必須要進行縮放,但在縮放時,該如何縮放呢,長和寬的縮放比例設置為多少合適呢,為了保持原圖的縱橫比,所以要最好的方法就是約束縮放比例,也就是等比例縮放,相信大家都用過PS中的縮放圖片的功能,有個選項就是約束縮放比例,也就是保持縱橫比,即等比例縮放。
縮放前 縮放後
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgICC1yLHIwP21xMv1t8XLvM/ruty88rWlo6y+zcrH1NrL9bfFtcS5/bPM1tCxo7PW19264bHIo6y0+sLryOfPwqO6ICAgIDwvcD4KPHByZSBjbGFzcz0="brush:java;"> //等比例縮放圖片
private Bitmap resize(Bitmap bitmap,int S){
int imgWidth = bitmap.getWidth();
int imgHeight = bitmap.getHeight();
double partion = imgWidth*1.0/imgHeight;
double sqrtLength = Math.sqrt(partion*partion + 1);
//新的縮略圖大小
double newImgW = S*(partion / sqrtLength);
double newImgH = S*(1 / sqrtLength);
float scaleW = (float) (newImgW/imgWidth);
float scaleH = (float) (newImgH/imgHeight);
Matrix mx = new Matrix();
//對原圖片進行縮放
mx.postScale(scaleW, scaleH);
bitmap = Bitmap.createBitmap(bitmap, 0, 0, imgWidth, imgHeight, mx, true);
return bitmap;
}
其中,S是長和寬縮放到的最大像素。
今天再來實現一個給圖片添加邊框效果,當然了,這裡我簡單的添加了一個線條邊框,也可以用其他好看的邊框加在圖片上,先看效果圖:
其實,給圖片加邊框的思想,就是在圖片的四周繪制一個矩形,代碼如下:
//給圖片加邊框,並返回邊框後的圖片 public Bitmap getBitmapHuaSeBianKuang(Bitmap bitmap) { float frameSize = 0.2f; Matrix matrix = new Matrix(); // 用來做底圖 Bitmap bitmapbg = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); // 設置底圖為畫布 Canvas canvas = new Canvas(bitmapbg); canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG)); float scale_x = (bitmap.getWidth() - 2 * frameSize - 2) * 1f / (bitmap.getWidth()); float scale_y = (bitmap.getHeight() - 2 * frameSize - 2) * 1f / (bitmap.getHeight()); matrix.reset(); matrix.postScale(scale_x, scale_y); // 對相片大小處理(減去邊框的大小) bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); Paint paint = new Paint(); paint.setColor(Color.WHITE); paint.setStrokeWidth(1); paint.setStyle(Style.FILL); // 繪制底圖邊框 canvas.drawRect( new Rect(0, 0, bitmapbg.getWidth(), bitmapbg.getHeight()), paint); // 繪制灰色邊框 paint.setColor(Color.BLUE); canvas.drawRect( new Rect((int) (frameSize), (int) (frameSize), bitmapbg .getWidth() - (int) (frameSize), bitmapbg.getHeight() - (int) (frameSize)), paint); canvas.drawBitmap(bitmap, frameSize + 1, frameSize + 1, paint); return bitmapbg; }
在為Fragment做切換動畫,啟動後遇到了一個異常: Caused by: java.lang.RuntimeException: Unknown animation
android中使用jni對字符串加解密實現分析 最近項目有個需求,就是要對用戶的敏感信息進行加密處理,比如用戶的賬戶密碼,手機號等私密信息。在java中,就對字符串
1、背景介紹在開發應用過程中經常會遇到顯示一些不同的字體風格的信息猶如默認的LockScreen上面的時間和充電信息。對於類似的情況,可能第一反應就是用不同的多個Text
今天我們一起通過一個小例子來學習一下使用PULL解析器解析XML文件。 (1)首先我們放一個文件名為beauties.xml的XML文件到assets目錄下,文件內容如下