Android实现imageView可以随着设备旋转自动滚动

时间:2017-02-22 08:30 来源:互联网 作者:源码搜藏收藏

  • 源码类别:图片ImageView
  • 源码大小:未知
  • 编码格式:gbk,utf8,不限
  • 运行环境:Android studio
  • 广告推荐

PanoramaImageView

imageView可以随着设备旋转自动滚动。

屏幕截图

  

包括PanoramaImageView到您的项目

用gradle:


	
dependencies {
   compile 'com.gjiazhe:PanoramaImageView:1.0'
}

使用PanoramaImageView在布局文件就像ImageView


	
<com.gjiazhe.panoramaimageview.PanoramaImageView
    android:id="@+id/panorama_image_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/img"
    app:piv_enablePanoramaMode="true"
    app:piv_show_scrollbar="true"
    app:piv_invertScrollDirection="false" />

属性说明

属性 格式 默认 描述
piv_enablePanoramaMode 布尔 真正 不启用全景效果。
piv_show_scrollbar 布尔 真正 不显示滚动条。
piv_invertScrollDirection 布尔 不翻转滚动方向。

所有的属性也可以在java代码中设置:

panoramaImageView setEnablePanoramaMode(true);
panoramaImageView setEnableScrollbar(true);
panoramaImageView setInvertScrollDirection(false);

注册GyroscopeObserver

在使用PanoramaImageView的Activity或Fragment中,您应该在onResume()中注册GyroscopeObserver记住在onPause()中注销它


	
public class MyActivity extends AppCompatActivity {

    private GyroscopeObserver gyroscopeObserver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Initialize GyroscopeObserver.
        gyroscopeObserver = new GyroscopeObserver();
        // Set the maximum radian the device should rotate to show image's bounds.
        // It should be set between 0 and π/2.
        // The default value is π/9.
        gyroscopeObserver.setMaxRotateRadian(Math.PI/9);

        PanoramaImageView panoramaImageView = (PanoramaImageView) findViewById(R.id.panorama_image_view);
        // Set GyroscopeObserver for PanoramaImageView.
        panoramaImageView.setGyroscopeObserver(gyroscopeObserver);
    }

    @Override
    protected void onResume() {
        super.onResume();
        // Register GyroscopeObserver.
        gyroscopeObserver.register(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        // Unregister GyroscopeObserver.
        gyroscopeObserver.unregister();
    }
}

设置OnPanoramaScrollListener以观察滚动状态

如果要在图像滚动时获得回调,请为PanoramaImageView设置一个OnPanoramaScrollListener。


	
panoramaImageView.setOnPanoramaScrollListener(new PanoramaImageView.OnPanoramaScrollListener() {
    @Override
    public void onScrolled(PanoramaImageView view, float offsetProgress) {
        // Do something here.
        // The offsetProgress range from -1 to 1, indicating the image scrolls
        // from left(top) to right(bottom).
    }
});

本站资源仅限于学习研究,严禁从事商业或者非法活动! 源码搜藏网所有源码来自互联网转载与用户上传分享,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

图片ImageView下载排行

最新文章