我正在创建一个放大图像的对话框,
但是,我的内容是240px,我想将其调整为屏幕宽度,调整为“fill_parent”。你能告诉我这里有什么问题吗?我的图片很小,240px,而不是480px。
final Dialog dialog = new Dialog(myview);
dialog.setContentView(R.layout.zoom);
dialog.setTitle(""+passInfoNom+" ");
imgView2 = (ImageView)dialog.findViewById(R.id.ImageZoom);
imgView2.setImageDrawable(image);
dialog.show();
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffffff"
>
<ImageView android:id="@+id/ImageZoom"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</ImageView>
</LinearLayout>
答案 0 :(得分:2)
您似乎已将内容设置为“fill_parent”,但尚未将对话框的大小设置为“fill_parent”。改变这一点,你应该看到一些结果。
但是我有一个问题:如果你想让缩放对话框占据整个屏幕,为什么不开始一个新的活动,或裁剪图像并将裁剪的部分设置为内容?你会放大一个对话框,这对我来说似乎很奇怪。例如,谷歌地图只是放大现有的视图。
答案 1 :(得分:2)
正如在另一个anwser中指出的那样,我通过创建自己的Dialog
类并设置其大小来调整对话框的大小:
public class ZoomZoom extends Dialog
{
public ZoomZoom(Context context) {
super(context);
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.zoom);
LayoutParams params = getWindow().getAttributes();
params.width = LayoutParams.FILL_PARENT;
//params.height = LayoutParams.FILL_PARENT;
params.height = screenLargeur;
getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);
imgView2 = (ImageView)findViewById(R.id.ImageZoom);
imgView2.setImageDrawable(imageZ);
imgView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.hide();
}
});
}
}
答案 2 :(得分:0)
不确定这是否已经为您解决但您也可以使用android:minWidth和android:minHeight,将它们设置为dip。例如:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/send_chat_layout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:background="#292929"
android:minWidth="300dip"
android:minHeight="400dip">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
根据我的理解,由于Android在分辨率方面的分辨率,使用360x480屏幕,将分钟设置为340x460将使其方面保持更大的分辨率。