参考
Android 动画 - ScaleAnimation 缩放动画使用(附图)_shibin1990_的博客-CSDN博客_android scaleanimation
功能展示
实现原理
用帧布局,预先放置一个ImageView控件,Visibility属性设置为gone即不显示,大小为最大,然后在图片拍摄好后,获得图片,显示出来,并添加缩小到左下角的动画效果。
关键代码
新建res->anim->image_show.xml
<?xml version="1.0" encoding="utf-8"?> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fillAfter="true" android:fillBefore="false" android:fromXScale="1" android:fromYScale="1" android:pivotX="2%" android:pivotY="98%p" android:toXScale="0.2" android:toYScale="0.2"> <!--fillAfter:动画结束后保持最终状态--> <!--android:fillBefore:动画结束之后是否保持动画开始前的状态--> <!--duration:动画时长--> <!--fromXScale,fromYScale的起始--> <!--toXScale,toYScale的结束--> <!--pivotX,pivotY 缩放位置,百分比以自身缩放,数值以屏幕像素缩放--> </scale>
java中
//SurfaceTexture通过updateImage更新 @Override public void onSurfaceTextureUpdated(SurfaceTexture surface) { } private final class MyPictureCallback implements Camera.PictureCallback { @Override public void onPictureTaken(byte[] data, Camera camera) { try { // bundle = new Bundle(); // bundle.putByteArray("bytes", data); //将图片字节数据保存在bundle当中,实现数据交换 saveToSDCard(data); // 保存图片到sd卡中 camera.startPreview(); // 拍完照后,重新开始预览 Toast.makeText(getActivity(), "外摄拍摄已保存", Toast.LENGTH_SHORT).show(); Bitmap bitmap = getPicFromBytes(data, null); home_out_right_image_show.setImageBitmap(bitmap); //将拍到的照片显示在控件上 home_out_right_image_show.setVisibility(View.VISIBLE); //显示图片 home_out_right_image_show.startAnimation(AnimationUtils.loadAnimation(getContext(), R.anim.image_show)); //进行图片动画 } catch (Exception e) { e.printStackTrace(); } } }