当前位置: 首页 > 知识库问答 >
问题:

在viewpager/imageview中,某些图像部分隐藏在框架下?

端木鹏
2023-03-14

我开发了一个应用程序,应该在SO用户的帮助下在原始图像的顶部显示框架...然而,我有一个小问题...问题是原始图像的某些部分隐藏在框架下...我的问题是为什么会发生这种情况,我如何修复它?...我希望图像适合框架...这样原始图像就会出现在框架下...我是Android新手,所以任何关于createScaledBitmap的代码帮助以及解释都是值得赞赏的...

以下是我的代码。。

    import android.content.Context;
    import android.content.res.Resources;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.drawable.BitmapDrawable;
    import android.graphics.drawable.Drawable;
    import android.graphics.drawable.LayerDrawable;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;

    public class ImageAdapter extends PagerAdapter {
        Context context;
        private int[] GalImages = new int[] {
            R.drawable.one,
            R.drawable.two,
            R.drawable.three,
            R.drawable.four,
            R.drawable.five
        };
        ImageAdapter(Context context){
            this.context=context;
        }
        @Override
        public int getCount() {
          return GalImages.length;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
          return view == ((ImageView) object);
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
          ImageView imageView = new ImageView(context);
          int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_small);
          imageView.setPadding(padding, padding, padding, padding);
          imageView.setScaleType(ImageView.ScaleType.FIT_XY);
          Resources r = context.getResources();
          Bitmap bmp = BitmapFactory.decodeResource(r, GalImages[position]);
          int width=200;
          int height=200;
          Bitmap resizedbitmap = Bitmap.createScaledBitmap(bmp, width, height, true);
          Drawable d = new BitmapDrawable(r,resizedbitmap);
          Drawable[] layers = new Drawable[2];
          layers[0] = d;
          layers[1] = r.getDrawable(R.drawable.a);
          LayerDrawable layerDrawable = new LayerDrawable(layers);
          imageView.setImageDrawable(layerDrawable);
          ((ViewPager) container).addView(imageView, 0);
          return imageView;
        } 

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
          ((ViewPager) container).removeView((ImageView) object);
        }
      }

活动_main。xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:icon="@drawable/icon" >



          <android.support.v4.view.ViewPager
          android:id="@+id/view_pager"
          android:layout_width="match_parent"
          android:layout_height="match_parent" 
         android:icon="@drawable/icon"
          />
           <ImageView
        android:id="@+id/swipe_left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:src="@drawable/swipe_left" />

    <ImageView
        android:id="@+id/swipe_right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:src="@drawable/swipe_right" />

</RelativeLayout>

共有1个答案

丌官积厚
2023-03-14

您可以在图像的XML中放置一些属性。ScaleType决定了如果视图与图像的大小不相同,应如何缩放图像。

       <ImageView
        android:id="@+id/someImage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="-6dp"
        android:layout_marginTop="-6dp"
        android:background="@drawable/dropshadow2"
        android:rotation="-6"
        android:scaleType="fitCenter">                <---- either in XML or code
       </ImageView>

虽然http://developer.android.com/reference/android/widget/ImageView.ScaleType.html有更好的详细信息

 类似资料:
  • 我已经开发了一个应用程序,应该显示位于可绘制文件夹中的图像。我使用了Imageview/viewpager。但是,我想显示下面显示的框架。在图像的顶部,这样图像看起来更花哨...此外,框架应该随着图像滑动...这样它看起来更漂亮...我正在考虑在图像上永久创建它...通过Photoshop...但我不喜欢这个想法...所以我想可能是android有一些东西...我是android初学者...所以任

  • 问题内容: 是否可以将某些字段排除在json字符串中? 这是一些伪代码 我想排除privateProperty1和privateproperty2出现在json字符串中 所以我想,我可以使用stringify replacer函数 并在串 但是在jsonString中,我仍然将其视为 我想在其中没有privateproperties的字符串。 问题答案: 在Mozilla的文档说回报(而不是):

  • 有没有办法在另一个程序中隐藏窗口或框架?例如,如果你打开了一个Firefox窗口,并且运行了你的程序,那么它会和firefoxFrame一样。setVisible(false),但很明显,我没有对另一个程序框架的引用。然后也许以后,firefoxFrame。setVisible(真)

  • 问题内容: 我开发了一个简单的演示应用程序,其中包含启动屏幕,地图和一些常规屏幕。 我在顶部有一个包含徽标的操作栏。在我的手机(Galaxy s1 I9000 V2.3)上一切看起来都不错,但是当我在Galaxy s2 v4上对其进行测试时,动作栏也会出现在初始屏幕和地图屏幕中。 spalsh和map活动甚至都没有从ActionBarActivity继承,所以这怎么可能?我如何使它消失? 表现:

  • 我有底部的导航栏和视窗内的协调器布局,视窗内的每个片段都有自己的折叠工具栏, 但是对我不起作用。 我也不想做通过监听我嵌套的滚动视图(内部片段),因为它没有动画。 我的活动 其中一个片段(在内容视图中有一个嵌套的scrollview。我设置了它的布局行为) 这些链接不起作用在滚动上隐藏/显示底部导航视图 使用AppBarLayout在协调布局中滚动时显示/隐藏底部导航视图 当滚动底部导航栏不隐藏时

  • 本文向大家介绍ThinkPHP框架里隐藏index.php,包括了ThinkPHP框架里隐藏index.php的使用技巧和注意事项,需要的朋友参考一下 本文所写的配置在ThinkPHP3.2.2上测试过。按理也兼容其它版本。 首先修改配置文件: 'URL_CASE_INSENSITIVE' => true, // 默认false 表示URL区分大小写 true则表示不区分大小写 'URL_MODE