English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dieser Artikel erläutert die Methode der Android-Programmierung zur Anzeige großer Bilder im Scrollview. Hiermit möchte ich es allen zur Verfügung stellen und als Referenz verwenden. Genauer gesagt:
问题:
我有一张较大的图片,比如长宽都是屏幕的两倍大小,我想实现的功能是首先将图片居中显示,由于图片太大,显然只能显示一部分,然后可以通过拖动实现图片的平滑滚动(既看不出来滚动刷新痕迹)。
就像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 - (int) (my - curY)); mx = curX; my = curY; break; case MotionEvent.ACTION_UP: curX = event.getX(); curY = event.getY(); switcherView.scrollBy((int) (mx - (int) (my - curY)); break; } return true; } }); }
Das erzielte Ergebnis ist wie folgt:
Ursprüngliches Bild:
Effekt im Simulator:
Interessierte Leser können mehr über Android-Inhalte in den Themenseiten dieser Website nachlesen: "Zusammenfassung der Techniken zur Grafik- und Bildverarbeitung in Android", "Einführung und Fortgeschrittene Android-Entwicklungstutorials", "Zusammenfassung der Techniken zur Fehlersuche und Behebung häufiger Probleme in Android", "Zusammenfassung der Techniken zur Multimedia-Operation in Android (Audio, Video, Aufnahme usw.)", "Zusammenfassung der Verwendung der grundlegenden Komponenten in Android", "Zusammenfassung der Techniken der Ansichten View in Android", "Zusammenfassung der Techniken der Layouts in Android" und "Zusammenfassung der Verwendung der Steuerelemente in Android".
Ich hoffe, dass dieser Artikel Ihnen bei der Android-Programmgestaltung weiterhilft.
Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet entnommen und gehört dem jeweiligen Urheber. Der Inhalt wurde von Internetnutzern freiwillig eingereicht und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt keine rechtlichen Verantwortlichkeiten. Wenn Sie Inhalte mit Urheberrechtsverletzungen entdecken, sind Sie herzlich eingeladen, eine E-Mail an notice#w zu senden.3codebox.com (Bitte ersetzen Sie # durch @ beim Senden einer E-Mail zur Meldung von Verstößen und stellen Sie relevante Beweise zur Verfügung. Bei nachgewiesener Verletzung der Rechte wird diese Website den fraglichen Inhalt sofort löschen.)