繁体   English   中英

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

[英]Android: How to avoid ImageView flashing when the screen is clicked?

我缩放后的屏幕上有一个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>

使用xml中的android:scaleTypeImageView.setScaleType()缩放图像。 我认为centerCrop是您所需要的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM