我在视图寻呼机内部有一个图像视图,用于显示来自网址的一些图像,如下面的屏幕截图所示,
但是,应填充图像(应占用整个视图寻呼机空间)。但在我的情况下发生的是,即使我设置布局参数来填充父级,图像也会显示在中心。
我的片段,我返回带有图像视图的布局:
ImageView image = new ImageView(getActivity());
ImageLoader imgLoader = new ImageLoader(MainActivity.context);
imgLoader.DisplayImage(imagePath, new Activity(), image);
LinearLayout layout = new LinearLayout(getActivity());
layout.setLayoutParams(new LayoutParams());
layout.setGravity(Gravity.CENTER);
layout.addView(image);
return layout;
查看寻呼机:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="225dp"
android:background="@color/white"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
当图像仍然从网址加载时我会显示一些像动画一样的进度,一旦加载我将在imageview中设置图像
if (bitmap != null) {
imageView.setBackgroundResource(0);
imageView.setImageBitmap(bitmap);
} else {
imageView.setBackgroundResource(R.drawable.view_pager_progress);
final AnimationDrawable startAnimation = (AnimationDrawable) imageView
.getBackground();
imageView.setScaleType(ScaleType.CENTER);// i tried FIT_XY, dint work
startAnimation.start();
}
总结一下,我想要的是,视图内部寻呼机中的图像应该水平和垂直地填充视图寻呼机内的整个空间。知道怎么做吗?
答案 0 :(得分:6)
尝试将imageView的ScaleType设置为CENTER_CROP
imageView.setScaleType(CENTER_CROP)
另外,也许,在将ImageView添加到LinearLayout
时,您需要添加一些布局参数答案 1 :(得分:1)
@suresh cheemalamudi在上面的代码中,你给出了你的寻呼机所在的线性布局的高度。相反,它使它与parent相匹配。而xml代码应该如下所示
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
我的java代码用这种方式指定
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
答案 2 :(得分:0)
尝试使用:
image.setAdjustViewBounds(true);
答案 3 :(得分:0)
行。实际工作的解决方案是:
ImageView imageView = new ImageView(context);
imageView.setLayoutParams(new ViewGroup.LayoutParams(mScreenWidth, ViewGroup.LayoutParams.WRAP_CONTENT));
imageView.setAdjustViewBounds(true);
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
Drawable drawable = Drawable.createFromPath(Environment.getExternalStorageDirectory() + "/Android/data/" + getPackageName() +
"/"+....+".jpg");
if(drawable != null)
imageView.setImageDrawable(drawable);
((ViewPager) container).addView(imageView, 0);
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
/>