我在屏幕上显示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>
答案 0 :(得分:0)
在xml或android:scaleType
中使用ImageView.setScaleType()
来缩放图片。我认为centerCrop
就是你所需要的。
请参阅android:scaleType以获取更多信息。