Ⅰ 在android開發中,如何控制dialog 的大小 和 圖片的大小
1、控制大小和位置
/*
*
獲取對話框的窗口對象及參數對象以修改對話框的布局設置,
*
可以直接調用getWindow(),表示獲得這個Activity的Window
*
對象,這樣這可以以同樣的方式改變這個Activity的屬性.
*/
Window
dialogWindow
=
dialog.getWindow();
WindowManager.LayoutParams
lp
=
dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.LEFT
|
Gravity.TOP);
/*
*
lp.x與lp.y表示相對於原始位置的偏移.
*
當參數值包含Gravity.LEFT時,對話框出現在左邊,所以lp.x就表示相對左邊的偏移,負值忽略.
*
當參數值包含Gravity.RIGHT時,對話框出現在右邊,所以lp.x就表示相對右邊的偏移,負值忽略.
*
當參數值包含Gravity.TOP時,對話框出現在上邊,所以lp.y就表示相對上邊的偏移,負值忽略.
*
當參數值包含Gravity.BOTTOM時,對話框出現在下邊,所以lp.y就表示相對下邊的偏移,負值忽略.
*
當參數值包含Gravity.CENTER_HORIZONTAL時
*
,對話框水平居中,所以lp.x就表示在水平居中的位置移動lp.x像素,正值向右移動,負值向左移動.
*
當參數值包含Gravity.CENTER_VERTICAL時
*
,對話框垂直居中,所以lp.y就表示在垂直居中的位置移動lp.y像素,正值向右移動,負值向左移動.
*
gravity的默認值為Gravity.CENTER,即Gravity.CENTER_HORIZONTAL
|
*
Gravity.CENTER_VERTICAL.
*
*
本來setGravity的參數值為Gravity.LEFT
|
Gravity.TOP時對話框應出現在程序的左上角,但在
*
我手機上測試時發現距左邊與上邊都有一小段距離,而且垂直坐標把程序標題欄也計算在內了,
*
Gravity.LEFT,
Gravity.TOP,
Gravity.BOTTOM與Gravity.RIGHT都是如此,據邊界有一小段距離
*/
lp.x
=
100;
//
新位置X坐標
lp.y
=
100;
//
新位置Y坐標
lp.width
=
300;
//
寬度
lp.height
=
300;
//
高度
lp.alpha
=
0.7f;
//
透明度
//
當Window的Attributes改變時系統會調用此函數,可以直接調用以應用上面對窗口參數的更改,也可以用setAttributes
//
dialog.onWindowAttributesChanged(lp);
dialogWindow.setAttributes(lp);
/*
*
將對話框的大小按屏幕大小的百分比設置
*/
//
WindowManager
m
=
getWindowManager();
//
Display
d
=
m.getDefaultDisplay();
//
獲取屏幕寬、高用
//
WindowManager.LayoutParams
p
=
getWindow().getAttributes();
//
獲取對話框當前的參數值
//
p.height
=
(int)
(d.getHeight()
*
0.6);
//
高度設置為屏幕的0.6
//
p.width
=
(int)
(d.getWidth()
*
0.65);
//
寬度設置為屏幕的0.95
//
dialogWindow.setAttributes(p);
Ⅱ 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。
Ⅲ 您好,android里如何把圖片放大超過屏幕大小和拖動呢就像相冊里一樣。我試過很多辦法都不行。
是要編寫一個這樣的功能么,android提供的API裡面一般圖片都是Bitmap,可以通過Canvas.drawBItMap的方法在View進行圖片的繪制,在方法中需要進行傳入一個類型為Matrix的參數,設置Martrix的一些參數就可以進行圖片的放大的繪制,這只是顯示,也就是MVC中的View層,然後通過提供的一些觸摸函數的重寫並實現自己需要的一些功能,如拖動,實際上就是改變BitMap繪制的位置。關於觸摸的處理和圖片的繪制可以在網上進行一些教程的搜索,我就不羅列了,最終就是需要通過控制函數來改變圖片的繪制方式,這也許就是你所需要的功能。
Ⅳ android縮放圖片到指定大小顯示的兩種方法
第一種用 BitmapFactory.Options
先用 options.inJustDecodeBounds = true; 只載入獲得圖片的寬高,獲得相應的sampleSize,然後再次解析即可。
但是這樣有個坑是,沒辦法獲得指定大小的圖,只能是2的冪次方。所以最終獲取的寬高小於等於指定大小。
第二種 用矩陣 Matrix ,可以縮放到指定大小。
根據scale
Ⅳ android bitmap 改變圖片大小
Optionsoptions1=newOptions();
options1.inJustDecodeBounds=true;
BitmapFactory.decodeFile(filePath,options1);
options1.inSampleSize=RegisterTool.calculateInSampleSize(options1,110,160);//110,160:轉換後的寬和高,具體值會有些出入
options1.inJustDecodeBounds=false;
Bitmapbitmap=BitmapFactory.decodeFile(filePath,options1);//filePath:文件路徑
(BitmapFactory.Optionsoptions,
intreqWidth,intreqHeight){
finalintheight=options.outHeight;
finalintwidth=options.outWidth;
intinSampleSize=1;
if(height>reqHeight||width>reqWidth){
finalintheightRatio=Math.round((float)height
/(float)reqHeight);
finalintwidthRatio=Math.round((float)width/(float)reqWidth);
inSampleSize=heightRatio<widthRatio?widthRatio:heightRatio;
}
returninSampleSize;
}
//壓縮圖片並將Bitmap保存到本地
FileOutputStreamout=newFileOutputStream(newFile(filePath));
saveBitmap.compress(Bitmap.CompressFormat.JPEG,60,out);//60代表壓縮40%
Ⅵ android如何設置圖片自適應控制項大小
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/ic_launcher"/>
寬度和高度使用fill_parent (填充父窗體)
fill_parent 可以使控制項充滿父控制項,也就是你說的自動使用圖片控制項外的控制項大小。