Android 将edge属性应用于视图寻呼机时面临顶部/底部填充问题

Android 将edge属性应用于视图寻呼机时面临顶部/底部填充问题,android,android-viewpager,imageview,padding,Android,Android Viewpager,Imageview,Padding,大家好,我正在尝试为我的视图页面赋予边缘效果,我在viewpager中使用了填充,这会导致图像顶部和底部出现空白。我已经尝试在视图页面上以及图像视图上调整图像的ViewBound和scaling属性,但没有结果。应用填充后会导致在顶部和底部填充,以保持图像的纵横比 任何形式的帮助都将不胜感激 查看寻呼机` <android.support.v4.view.ViewPager android:id="@+

大家好,我正在尝试为我的视图页面赋予边缘效果,我在viewpager中使用了填充,这会导致图像顶部和底部出现空白。我已经尝试在视图页面上以及图像视图上调整图像的ViewBound和scaling属性,但没有结果。应用填充后会导致在顶部和底部填充,以保持图像的纵横比

任何形式的帮助都将不胜感激

查看寻呼机`

                    <android.support.v4.view.ViewPager
                        android:id="@+id/av_medical_case_item"
                        android:layout_width="match_parent"
                        android:layout_height="300dp"
                        />

寻呼机适配器

public class AdapterSliderImage extends PagerAdapter {

    public List<ModelImage> Images;

    Context context;
    String medical_id;
    LayoutInflater mLayoutInflater;




    public AdapterSliderImage(LayoutInflater mLayoutInflater, List<ModelImage> Images, Context context, String Id) {
        this.mLayoutInflater = mLayoutInflater;
        this.Images = Images;
        this.context = context;
        this._id = Id;
//        this.longestImage = findLongestImage();
    }

//    public float getPageWidth(int position) {
//        if (position == medicalImages.size()) {
//            return  1f;
//        }
//       return .8f;
//    }


    @Override
    public int getCount() {
        if (Images != null)
            return medicalImages.size();
        else
            return 0;
    }

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

    @Override
    public Object instantiateItem(ViewGroup container, final int position) {
        View itemView = mLayoutInflater.inflate(R.layout.view_case_image, container, false);
//        View view =  itemView.findViewById(R.id.view);
//        view.setVisibility(View.VISIBLE);
        final FrameLayout frame_layout_iv = (FrameLayout) itemView.findViewById(R.id.frame_layout_iv);
        final ProgressBar img_loader_icon = (ProgressBar) itemView.findViewById(R.id.img_loader_icon);
        img_loader_icon.setVisibility(View.VISIBLE);
        ImageView imageView = (ImageView) itemView.findViewById(R.id.iv_image);
//        frame_layout_iv.setClipToPadding(false);
//        frame_layout_iv.setPadding(0,0,30,0);

        Picasso.with(context).load(String.valueOf(Images.get(position).base_url)).into(imageView, new Callback() {
            @Override
            public void onSuccess() {
                img_loader_icon.setVisibility(View.GONE);

            }

            @Override
            public void onError() {

            }

        });


        imageView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                //Toast.makeText(context, "Image number: " + position + " clicked", Toast.LENGTH_LONG).show();
                ActivityCase_.intent(context).isShowCaseSharePopup(false).isShowPublishReviewPopUp(false).case_id(id).flags(Intent.FLAG_ACTIVITY_NEW_TASK).start();

            }
        });


        container.addView(itemView);

        return itemView;
    }

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


    @Override
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }

}
公共类适配器SlideRimage扩展PagerAdapter{
公开列表图像;
语境;
字符串医疗标识;
放平机MLAYOUTIONFLATER;
公共适配器SlideRimage(LayoutFlater MlayoutFlater、列表图像、上下文上下文、字符串Id){
this.mLayoutInflater=mLayoutInflater;
这个。图像=图像;
this.context=上下文;
这个。_id=id;
//this.longestImage=findlonggestimage();
}
//公共浮点getPageWidth(整型位置){
//if(position==medicalImages.size()){
//返回1f;
//        }
//返回.8f;
//    }
@凌驾
public int getCount(){
如果(图像!=null)
返回medicalImages.size();
其他的
返回0;
}
@凌驾
公共布尔值isViewFromObject(视图,对象){
返回视图==((框架布局)对象);
}
@凌驾
公共对象实例化项(视图组容器,最终int位置){
视图项视图=MLAYOUTINGER.FLATE(R.layout.View\u case\u图像,容器,错误);
//视图=itemView.findViewById(R.id.View);
//view.setVisibility(view.VISIBLE);
最终FrameLayout frame_layout_iv=(FrameLayout)itemView.findviewbyd(R.id.frame_layout_iv);
final ProgressBar img_loader_icon=(ProgressBar)itemviewbyd(R.id.img_loader_icon);
img_loader_icon.setVisibility(View.VISIBLE);
ImageView ImageView=(ImageView)itemView.findViewById(R.id.iv_图像);
//框架布局四.设置Cliptoppadding(假);
//框架布局四.设置填充(0,0,30,0);
Picasso.with(context).load(String.valueOf(Images.get(position.base_url))到(imageView,new Callback()中{
@凌驾
成功时的公共无效(){
img_loader_icon.setVisibility(View.GONE);
}
@凌驾
公开无效{
}
});
imageView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//Toast.makeText(上下文,“图像编号:+位置+”单击),Toast.LENGTH_LONG.show();
ActivityCase.intent(上下文)。isShowCaseSharePopup(false)。isShowPublishReviewPopUp(false)。case_id(id)。flags(intent.FLAG_ACTIVITY_NEW_TASK)。start();
}
});
container.addView(itemView);
返回项目视图;
}
@凌驾
公共项(视图组容器、int位置、对象){
container.removeView((FrameLayout)对象);
}
@凌驾
public int getItemPosition(对象){
返回位置\无;
}
}
适配器的布局类

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id ="@+id/frame_layout_iv"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ProgressBar
        android:id="@+id/img_loader_icon"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="34dp"
        android:layout_height="34dp"
        android:layout_gravity="center" />

    <ImageView
        android:id="@+id/iv_image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:adjustViewBounds="true"
        android:paddingEnd="30dp"
        android:contentDescription="fdg" />
<!--<View-->
    <!--android:id = "@+id/view"-->
    <!--android:layout_width="match_parent"-->
    <!--android:layout_height="match_parent"-->
    <!--android:background="@color/brand_light_green"/>-->



</FrameLayout>    

viewpager的实现

 final ProgressBar pb_thumbnail_img = (ProgressBar) findViewById(R.id.pb_thumbnail_img);
            av_item.setVisibility(VISIBLE);
            iv_item_adjustable_view.setVisibility(GONE);
            LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            List<ModelImage> ImageList = card.getImages();
            int max_height =  0 ;
            ModelImage longestImage = null;
            for (ModelImage image :ImageList ) {
                int height = image.getHeight();


                if (max_height < height) {
                    max_height = height;
                    longestImage = image;
                }

             }
                ImageList.remove(longestImage);
            ImageList.add(0, longestImage);
            final int orig_height = longestImage.getHeight();
                final int orig_width = longestImage.getWidth();


            av_case_item.setBackgroundColor(getResources().getColor(R.color.white));
            av_case_item.post(new Runnable() {
                @Override
                public void run() {
                    int req_width = av_case_item.getMeasuredWidth();
                    int req_height = req_width * orig_height / orig_width;
                    av_medical_case_item.setLayoutParams(new FrameLayout.LayoutParams(ViewPager.LayoutParams.MATCH_PARENT, req_height));


//                        av_medical_case_item.setScaleType(ImageView.ScaleType.CENTER_INSIDE);

                }
            });

            AdapterSlider Image case_image_slider_adapter =  new =AdapterSliderImage(inflater, ImageList,getContext(),card.getItem_id());
//           
            av_case_item.setAdapter(case_image_slider_adapter);
            av_case_item.setClipToPadding(false);
            av_case_item.setPadding(0, 0, 60, 0);           `
final ProgressBar-pb\u-thumboil\u-img=(ProgressBar)findViewById(R.id.pb\u-thumboil\u-img);
av_项目设置可见性(可见);
iv_项目_可调_视图。设置可见性(消失);
LayoutInflater充气器=(LayoutInflater)getContext().getSystemService(Context.LAYOUT\u充气器\u SERVICE);
List ImageList=card.getImages();
int max_height=0;
ModelImage longestImage=null;
用于(模型图像:图像列表){
int height=image.getHeight();
如果(最大高度<高度){
最大高度=高度;
长图像=图像;
}
}
ImageList.remove(长图像);
添加(0,longestImage);
final int orig_height=longestImage.getHeight();
final int orig_width=longestImage.getWidth();
av_case_item.setBackgroundColor(getResources().getColor(R.color.white));
av_case_item.post(新的可运行(){
@凌驾
公开募捐{
int req_width=av_case_item.getMeasuredWidth();
int req_高度=req_宽度*起始高度/起始宽度;
av_medical_case_item.setLayoutParams(新的FrameLayout.LayoutParams(ViewPager.LayoutParams.MATCH_父项,要求高度));
//av_medical_case_item.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
}
});
AdapterSlider图像盒\u图像\u滑块\u适配器=新建=适配器SlideRimage(充气机、图像列表、getContext()、card.getItem\u id());
//           
av_case_item.setAdapter(case_image_slider_adapter);
av_case_item.setcliptoppadding(false);
av_case_item.setPadding(0,0,60,0)`