3

我有看法寻呼机内的图像视图来显示一些图像从URL来作为显示在下面的屏幕截图,的Android - 查看传呼机内部图像查看问题

enter image description here 然而,图像应填写(应占有完整的视图寻呼机空间)。但是,在我的情况发生了什么是图像显示在中心,即使当我设置布局参数填补父母。

我的片段,其中i返回布局图像视图:

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> 

当图像仍然从网址载入我会表现出像动画一些进展,一旦加载我将设置图像内的图像

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

亲爱的,你怎么解决这个问题?我有同样的问题,但与内容使用coordinatorlayout ... – Mateus 2016-01-19 11:20:34

回答

5

尝试设置ScaleType为您的ImageView到CENTER_CROP

imageView.setScaleType(CENTER_CROP) 

而且,也许,你需要添加一些布局PARAMS添加ImageView的到的LinearLayout

+0

CENTER_CROP dint的工作,我甚至尝试过设置imageview的布局参数,但没有运气到目前为止 – 2013-04-30 11:12:29

+0

很抱歉听到这个消息。需要在viewpager中使用线性布局和图像视图的父级布局参数,最简单的方法是使用xml layout re资源。然后CENTER_CROP可能会有所帮助。 – httpdispatch 2013-04-30 11:27:04

0

尝试使用:

image.setAdjustViewBounds(true); 
+0

dint工作:( – 2013-04-30 10:57:53

+0

它改变了什么吗?如果不是,请确保视图的父母或邻近您的imageView的填充或边缘没有干扰你可以尝试手动添加一个imageView,看看它是如何在编辑器中看到的。 – NoToast 2013-04-30 11:02:21

+0

这里是完整的xml代码,用于上述活动。你认为这里有什么问题吗?http:// pastebin .com/7AAMWuvP – 2013-04-30 11:05:00

1

时@suresh cheemalamudi在你的上面的代码中给出了你的寻呼机所在的线性布局的高度,而不是使它匹配parent.And xml代码应该看起来像l IKE在此之下

<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); 
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" 
    /> 
+0

mScreenWidth的值是多少? – dmh 2015-09-28 15:18:00

+0

设备屏幕的当前宽度(取决于旋转)。 – Yar 2015-09-28 15:26:02

+0

你在页面适配器上使用这个吗? – dmh 2015-09-28 15:30:01