Android:如何在单击屏幕时避免ImageView闪烁?

时间:2016-09-12 02:30:13

标签: android

我在屏幕上显示ImageView我已缩放。当我点击屏幕时,图像会恢复到原始大小,然后是缩放后的大小,然后不断返回。有想法该怎么解决这个吗?或者为什么会发生这种情况? 我的ImageView's片段代码

public class LargeFragment extends Fragment {
    Button back;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        final View view = inflater.inflate(R.layout.large,container,false);
        final ImageView p = (ImageView) view.findViewById(R.id.large);
        final SharedPreferences pref = getActivity().getSharedPreferences("high",0);
        p.setImageResource(getResources().getIdentifier(pref.getString("selectedPlayer","pink").concat("large"), "drawable",view.getContext().getPackageName()));
        view.post(new Runnable() {
            @Override
            public void run() {
                p.requestLayout();
                final int w = view.getWidth();
                p.getLayoutParams().height = w; //scaling the image here
            }
        });
        back = (Button) view.findViewById(R.id.exit);
        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LargeFragment.this.getActivity().finish();
            }
        });
        return view;
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}

XML

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:background="@drawable/bg2">
   <ImageView
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:id="@+id/large"
       android:rotation="270"
       android:scaleType="fitCenter"
       android:layout_gravity="center_vertical"
      />
    <Button
        android:text="Button"
        android:layout_width="wrap_content"
        android:layout_gravity="end"
        android:layout_height="35dp"
        android:id="@+id/exit" />
</FrameLayout>

1 个答案:

答案 0 :(得分:0)

在xml或android:scaleType中使用ImageView.setScaleType()来缩放图片。我认为centerCrop就是你所需要的。

请参阅android:scaleType以获取更多信息。