Android編程實現(xiàn)大圖滾動顯示的方法
本文實例講述了Android編程實現(xiàn)大圖滾動顯示的方法。分享給大家供大家參考,具體如下:
問題:
我有一張比較大的圖片,比如長寬都是屏幕的兩倍大小,我想實現(xiàn)的功能是首先將圖片居中顯示,由于圖片太大顯然只能顯示一部分,然后可以通過拖動,實現(xiàn)圖片的平滑滾動(既看不出來滾動刷新痕跡)。
就像google地圖一樣,如果用mapView這個控件,那么可以在屏幕上拖動整個地圖,但是由于地圖信息量太大,如果一次拖動過快,那么屏幕會暫時顯示出一些刷新痕跡(灰白的格子)。
想使用mapView來加載已有圖片,但是沒有成功,后來也使用了Srollview控件,和最常用的imageView,還是沒有成功。
解決:
經過大量查資料,使用imageView配合onTouch事件,可以解決。
關鍵代碼:
布局文件中imageView控件如下
<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/img" android:scaleType="center" android:background="#fff" android:src="@drawable/picName" />
Activity文件中主要代碼如下
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xml_name_layout);
final ImageView switcherView = (ImageView) this.findViewById(R.id.img);
switcherView.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent event) {
float curX, curY;
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mx = event.getX();
my = event.getY();
break;
case MotionEvent.ACTION_MOVE:
curX = event.getX();
curY = event.getY();
switcherView.scrollBy((int) (mx - curX), (int) (my - curY));
mx = curX;
my = curY;
break;
case MotionEvent.ACTION_UP:
curX = event.getX();
curY = event.getY();
switcherView.scrollBy((int) (mx - curX), (int) (my - curY));
break;
}
return true;
}
});
}
實現(xiàn)效果如下:
原圖:

模擬器里效果:


更多關于Android相關內容感興趣的讀者可查看本站專題:《Android圖形與圖像處理技巧總結》、《Android開發(fā)入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
相關文章
ListView上滑和下滑,顯示和隱藏Toolbar的實現(xiàn)方法
下面小編就為大家分享一篇ListView上滑和下滑,顯示和隱藏Toolbar的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
Android使用VideoView播放本地視頻和網絡視頻的方法
本文將講解如何使用Android視頻播放器VideoView來播放本地視頻和網絡視頻,實現(xiàn)起來還是比較簡單的,有需要的可以參考借鑒。2016-08-08
Android編程Widget創(chuàng)建與使用方法簡明教程
這篇文章主要介紹了Android編程Widget創(chuàng)建與使用方法,結合實例形式分析了Widget的功能、使用方法與相關注意事項,需要的朋友可以參考下2016-10-10
Flutter實現(xiàn)倒計時秒數(shù)轉時分秒然后倒計時功能
有一個需求,需要在頁面進行顯示倒計時,倒計時結束后,做相應的邏輯處理,這篇文章主要介紹了Flutter實現(xiàn)倒計時功能,秒數(shù)轉時分秒,然后倒計時,需要的朋友可以參考下2023-08-08
ERROR/AndroidRuntime(17121)的問題解決
ERROR/AndroidRuntime(17121)的問題解決,需要的朋友可以參考一下2013-05-05
Android InputMethodManager輸入法簡介
這篇文章主要介紹了Android InputMethodManager輸入法框架的使用,具有參考價值,需要的朋友可以參考下。2016-06-06

