中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android圖片處理教程之全景查看效果實現

發布時間:2020-08-24 13:48:14 來源:腳本之家 閱讀:177 作者:CMusketeer 欄目:移動開發

前言

在玩頭條的時候,現在我們會發現有很多的全景圖的廣告這樣快看起來非常的酷。今天就來說說這個小效果的實現

PS:Android對于圖片處理這塊資源還是挺多的,之前用OpenGL制作圖片的全景效果,耗時耗力,而且只能點擊進去后看到,但是效果是非常的號,今天所寫的是編寫好的一個圖片控件,只要拿來用就可以了。效果不是那么好,處理的之后就是一張圖片截取中間部分放大再顯示在屏幕中間,通過擺動手機查看被遮擋部分

如圖:一開始圖片是這樣的

Android圖片處理教程之全景查看效果實現

Android圖片處理教程之全景查看效果實現

上面就是效果圖了

實現方法如下

1:添加依賴

//全景圖片
 compile 'com.gjiazhe:PanoramaImageView:1.0'

2:使用控件

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

布局的根目錄一定要加上

 xmlns:app=http://schemas.android.com/apk/res-auto

這里面有三個屬性(其中三個)

一個是app:piv_enablePanoramaMode,使用全景效果模式,app:piv_show_scrollbar滾動條顯示,app:piv_invertScrollDirection顛倒滾動方向,不同的值就會呈現不同的效果。

3:注冊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).
 }
});

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正阳县| 眉山市| 嵩明县| 屏山县| 绥滨县| 玉溪市| 攀枝花市| 新竹县| 玉环县| 枣阳市| 遵义市| 三亚市| 壤塘县| 横峰县| 大石桥市| 女性| 北海市| 太原市| 荔浦县| 文成县| 阳原县| 商丘市| 衡水市| 枝江市| 孟村| 浦江县| 蓬溪县| 奉贤区| 高雄县| 和林格尔县| 普格县| 玉溪市| 昂仁县| 五家渠市| 朔州市| 汤原县| 旌德县| 沅江市| 荔浦县| 祁阳县| 辽阳市|