在imageview android中加载图像而不进行裁剪

时间:2013-07-23 12:14:02

标签: android performance android-imageview carousel

我创建了应用程序以在轮播视图中显示图像。我将图像加载到另一个xml布局文件&中的imageview中。将它们设置在carousel视图中,包含在主xml布局文件中。

这里我如何将图像加载到图像视图

public View getView(int position, View convertView, ViewGroup parent) {
        View vi=convertView;
        if(convertView==null)
            vi = inflater.inflate(R.layout.showsmain, null);
        ImageView image=(ImageView)vi.findViewById(R.id.imageView1);
        //LinearLayout rlayout=(LinearLayout)vi.findViewById(R.id.layout);
       image.setImageResource(R.drawable.black);
        orgWidth = image.getDrawable().getIntrinsicWidth();
        orgHeight = image.getDrawable().getIntrinsicHeight();
        imageLoader.DisplayImage(data[position], image);
        imageLoader.getDimension(widthScreen, heightScreen);

        LinearLayout lhome=(LinearLayout)((Activity) activity).findViewById(R.id.layouthome);
//        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
//              widthScreen,heightScreen/3);
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                    widthScreen,heightScreen/3);
        params.width=orgWidth;
            image.setLayoutParams(params);
            image.setScaleType(ImageView.ScaleType.FIT_XY);

        return vi;
    }

orgWidth是imageview的宽度。 widthscreen是运行app的屏幕宽度。在下面你可以看到如何在轮播视图中加载图像。

![在此处输入图片说明] [1]

在这里你看到图像是裁剪。我想加载没有裁剪的图像......

我尝试在三天内处理这个问题,在stackoverflow中有三个问题。 如果有人能够知道答案.....帮助我

这里我也给我的轮播布局xml文件....

<com.touchmenotapps.carousel.simple.HorizontalCarouselLayout
        android:id="@+id/carousel_layout_event"
        android:layout_width="600dp"
        android:layout_height="500dp"
        android:layout_above="@+id/relativeLayout1"
        android:layout_alignTop="@+id/carousel_layout" >
    </com.touchmenotapps.carousel.simple.HorizontalCarouselLayout>

1 个答案:

答案 0 :(得分:2)

制作ImageView后,请将其命名为:

image.setScaleType(ScaleType.CENTER_INSIDE);

然后,您的图像将缩放以适应具有保持纵横比的视图边界,而不是裁剪。