android設置imageview大小-ag真人国际官网
a. android中imnageview 中如何讓圖片拉伸顯示
通過設置android:scaletype="fitxy"使得圖片拉伸顯示。
補充:
scaletype的屬性有matrix(默認)、center、centercrop、centerinside、fitcenter、fitend、fitstart、fitxy。
android:scaletype="center"
保持原圖的大小,顯示在imageview的中心。當原圖的size大於imageview的size,超過部分裁剪處理。
android:scaletype="centercrop"
以填滿整個imageview為目的,將原圖的中心對准imageview的中心,等比例放大原圖,直到填滿imageview為止(指的是imageview的寬和高都要填滿),原圖超過imageview的部分作裁剪處理。
android:scaletype="centerinside"
以原圖完全顯示為目的,將圖片的內容完整居中顯示,通過按比例縮小原圖的size寬(高)等於或小於imageview的寬(高)。如果原圖的size本身就小於imageview的size,則原圖的size不作任何處理,居中顯示在imageview。
android:scaletype="matrix"
不改變原圖的大小,從imageview的左上角開始繪制原圖,原圖超過imageview的部分作裁剪處理。
android:scaletype="fitcenter"
把原圖按比例擴大或縮小到imageview的imageview的高度,居中顯示
android:scaletype="fitend"
把原圖按比例擴大(縮小)到imageview的高度,顯示在imageview的下部分位置
android:scaletype="fitstart"
把原圖按比例擴大(縮小)到imageview的高度,顯示在imageview的上部分位置
android:scaletype="fitxy"
把原圖按照指定的大小在view中顯示,拉伸顯示圖片,不保持原比例,填滿imageview.
b. android imageview是如何控制它的寬高比例,不讓
固定imageview 的大小後用一個屬性來設置 scaletype 這個就是設置圖片的載入模式 imageview的scaletype決定了圖片在view上顯示時的樣子,如進行何種比例的縮放,及顯示圖片的整體還是部分,等等。 設置的方式包括: 1 在layout xml中定義androiandroid imageview是如何控制它的寬高比例,不讓
c. 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);
(3)android設置imageview大小擴展閱讀:
根據位深度,可將點陣圖分為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組合數據位表示的的點陣圖稱為真彩色點陣圖。
d. 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。
e. android,程序中如何改變imageview大小
1、 在布局文件中定義imageview,但不為其設置資源。
android:layout_below="@id/title_bar"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
2、在activity的初始化代碼中,初始化imageview 並設定大小:
public void inittopimageview(view view) {
imageview imagetopview = (imageview)view.findviewbyid(r.id.topimageview);
windowmanager windowmanager = mparent.getwindowmanager();
display display = windowmanager.getdefaultdisplay();
int imagewidth = display.getwidth();
int imageheight = 0;
bitmapfactory.options option = new bitmapfactory.options();
option.injustdecodebounds = true;
bitmap mymap = bitmapfactory.decodestream(getresources().openrawresource(r.raw.landing_hot_proct_1));
imageheight = (imagewidth*mymap.getheight())/mymap.getwidth();
imagetopview.setscaletype(imageview.scaletype.fit_xy);
imagetopview.setlayoutparams(new linearlayout.layoutparams(imagewidth,imageheight));
imagetopview.setimageresource(r.raw.landing_hot_proct_1);
mymap.recycle();
}
在給imageview設置圖片資源之前,根據比例關系動態計算圖片的寬和高,並設置給imageview.
f. android 如何設置view的大小
在這段代碼中,創建了一個新的實例並且設置了尺寸:
// set the imageview dimensions
int dimens = 120;
float density = activity.getresources().getdisplaymetrics().density;
int finaldimens = (int)(dimens * density);
linearlayout.layoutparams imgvwdimens =
new linearlayout.layoutparams(finaldimens, finaldimens);
imgalbumphoto.setlayoutparams(imgvwdimens);
// set scaletype
imgalbumphoto.setscaletype(scaletype.center_crop);
// set the margin
int dimensmargin = 5;
float densitymargin = activity.getresources().getdisplaymetrics().density;
int finaldimensmargin = (int)(dimensmargin * densitymargin);
linearlayout.layoutparams imgvwmargin =
new linearlayout.layoutparams(finaldimens, finaldimens);
imgvwmargin.setmargins
(finaldimensmargin, finaldimensmargin, finaldimensmargin, finaldim
ensmargin);
改變已存在的imageview尺寸,使用這個:
coupon_img.setlayoutparams(new layoutparams(100, 100));