android视图寻呼机图像被拉伸

时间:2013-12-23 07:16:13

标签: android imageview android-viewpager splash-screen stretching

  • 我已将启动画面图像添加为我的启动活动的窗口背景图像。
  • 我的漫画图像与演练屏幕中的第一张图像相同。
  • 演练屏幕有一个包含5个图像视图的视图寻呼机。

现在我正在尝试从初始屏幕添加fadein动画以打开漫游活动。

这里的问题是我在飞溅和演练中使用的图像(第1张图片)是相同的。但是,与飞溅相比,漫游中的图像会变得拉长。

如何在漫游屏幕中显示与启动画面相同的图像而不会拉伸。

CODE: 1.我在浏览活动中查看寻呼机代码

mViewPager = (ViewPager) findViewById(R.id.viewpager);
mViewPager.setAdapter(new ViewPagerAdapter(this, mWalkThroughPic));
  1. Viewpager适配器代码

    public class ViewPagerAdapter extends PagerAdapter {
     Activity mActivity;
     int mImageArray[];
    
     public ViewPagerAdapter(Activity act, int[] imgArra) {
      mImageArray = imgArra;
      mActivity = act;
    
     }
    
     public int getCount() {
      return mImageArray.length;
     }
    
     public Object instantiateItem(View collection, int position) {
      ImageView view = new ImageView(mActivity);
      view.setScaleType(ScaleType.FIT_XY);
      view.setImageResource(mImageArray[position]);
      ((ViewPager) collection).addView(view, 0);
      return view;
     }
    
     @Override
     public void destroyItem(View arg0, int arg1, Object arg2) {
      ((ViewPager) arg0).removeView((View) arg2);
     }
    
     @Override
     public boolean isViewFromObject(View arg0, Object arg1) {
      return arg0 == ((View) arg1);
     }
    
     @Override
     public Parcelable saveState() {
      return null;
     }
    

    }

  2. 启动主题中使用的启动画面窗口背景代码:

    “<”style name =“SplashTheme”parent =“@ android:style / Theme.NoTitleBar”       “<”item name =“android:windowBackground”> @ drawable / screen1“<”/ item>        “<”item name =“android:windowNoTitle”> true“<”/ item>    “<”/&式GT; “

2 个答案:

答案 0 :(得分:0)

尝试将android:scaleType="centerCrop"添加到ImageView

答案 1 :(得分:0)

使用以下代码获取屏幕尺寸,并在所有屏幕中使用相同尺寸的图像

DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
    density=dm.densityDpi;      
    height = display.getHeight();
    width = display.getWidth();     
    System.out.println("width==>"+width+" "+"Height==>"+height+" "+"densityDpi==>"+dm.densityDpi);