Başlık (ekranın üstünde) ve Sekmeler (Ekranın alt kısmı) arasında kaydırma görünümü vardır. ScrollView içinde bulunan ImageView'ın telefon ekranında tamamen görünüp görünmeyeceğini bilmek istiyorum.Kaydırma İçinde Görünümün Tam Olarak Görüntülenip görüntülenmeyeceği veya görüntülenmeyeceği nasıl anlaşılır
7
A
cevap
3
Ben (yaklaşım this question yılında birine benzer) Aşağıdaki şekilde yapmaya öneririm.
E.g. Sen (Onların cevapsız böylece başlık ve sekmeler ne olduğundan emin değilim) Aşağıdaki xml:
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/scroller">
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:id="@+id/image"
android:src="@drawable/image001"
android:scaleType="fitXY" />
</ScrollView>
Sonra aktivite şöyle görünebilir:
küçük resmin durumundapublic class MyActivity extends Activity {
private static final String TAG = "MyActivity";
private ScrollView mScroll = null;
private ImageView mImage = null;
private ViewTreeObserver.OnGlobalLayoutListener mLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
final Rect imageRect = new Rect(0, 0, mImage.getWidth(), mImage.getHeight());
final Rect imageVisibleRect = new Rect(imageRect);
mScroll.getChildVisibleRect(mImage, imageVisibleRect, null);
if (imageVisibleRect.height() < imageRect.height() ||
imageVisibleRect.width() < imageRect.width()) {
Log.w(TAG, "image is not fully visible");
} else {
Log.w(TAG, "image is fully visible");
}
mScroll.getViewTreeObserver().removeOnGlobalLayoutListener(mLayoutListener);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Show the layout with the test view
setContentView(R.layout.main);
mScroll = (ScrollView) findViewById(R.id.scroller);
mImage = (ImageView) findViewById(R.id.image);
mScroll.getViewTreeObserver().addOnGlobalLayoutListener(mLayoutListener);
}
}
o kaydeder: görüntü tamamen görünür.
Ancak, Sen (benim anlayış uyarınca) aşağıdaki tutarsızlık hakkında bilmelidir: Sen büyük bir imaja sahip, ancak (eğer android:layout_width="wrap_content"
set örneğin) o ölçekli bak ne zaman kendisine ölçekleme yapıyorum ama eğer gerçek ImageView
yüksekliği olacak görüntünün tam yüksekliği olarak (ve ScrollView
bile kaydırma yapacak), bu nedenle adjustViewBounds gerekli olabilir. Bunun nedeninin nedeni, FrameLayout
doesn't care about layout_width and layout_height of childs.
İlgili konular
- 1. Başka bir görünümün içinde görünümün karesi nasıl alınır?
- 2. Aygıtta dikey olarak kaydırırken görünümün alt kısmındaki düğmeyi nasıl düzeltebilirim?
- 3. Android googlemaps V2 - Kaydırma veya kaydırma kaydırma devre dışı bırakma
- 4. Kaydırma etkinliğinde görev çubuğunu nasıl gizleyebilir veya şeffaf olarak ayarlayabilirsiniz?
- 5. Tam olarak tam olarak ne yapar? (...).
- 6. Parça içinde kaydırma tırnakları
- 7. Görünümün genişliğini * bazı * başka ata görünümünde yüzde olarak nasıl ayarlanır?
- 8. Java Hotspot Hataları Nasıl Anlaşılır
- 9. Zaman komutunun çıkışı nasıl anlaşılır?
- 10. Tensorflow tensorboard Histogramlar nasıl anlaşılır?
- 11. Amazon ECS kümesi nasıl anlaşılır
- 12. VIPER temiz mimarisi nasıl anlaşılır?
- 13. Bir .NET Derlemesinin x86, x64 veya Herhangi Bir CPU Olarak Derlenmiş Olması Nasıl Anlaşılır
- 14. Devtools zaman çizelgesi nasıl doğru şekilde anlaşılır?
- 15. Fare, görünümün üstündeyse nasıl bulunur
- 16. Python listesi anlaşılır - basit
- 17. Sayfanın son bölümünden önce görünümün altına tek kaydırma yakalama noktası
- 18. django içinde sonsuz kaydırma
- 19. OffsetLeftAndRight() öğesi tam olarak ne yapar?
- 20. Java'nın alet paketi nasıl anlaşılır ve öğrenilir?
- 21. JavaScript tam olarak nasıl yorumluyor?
- 22. Görevler tam olarak nasıl planlanır?
- 23. Qt nasıl çalışır (tam olarak)?
- 24. Tam olarak nasıl çalışır?() {}() Çalışır?
- 25. Backbone.js: Görünüm koleksiyonunu değiştirirken Görünümün otomatik olarak yenilenmesini nasıl zorlamalıyım?
- 26. SQL: Tam olarak eşleşmeyen satırları bulun ancak tam olarak değil
- 27. QML veya tam tersi
- 28. Angular md-content içinde yatay olarak kaydırma tablosu
- 29. Bir bitmapi görünümün arka planı olarak yerleştirme
- 30. Bir Görünümün Programlı Olarak Yerçekiminin Ayarlanması
Bunu deneyin: http://stackoverflow.com/a/25528434/3148266 – akshay7692