[英]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:scaleType
或ImageView.setScaleType()
缩放图像。 我认为centerCrop
是您所需要的。
请参阅android:scaleType以获取更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.