7
A
回答
3
我建議做以下方式(該方法類似於一個在this question)。
E.g.您有以下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>
然後活動可能如下所示:
public 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);
}
}
在小圖像的情況下,將會記錄:圖像完全可見。但是,您應該瞭解以下不一致性(根據我的理解):如果您的圖像很大,但是要縮放(例如,您設置爲android:layout_width="wrap_content"
),但它的外觀會縮放,但實際的高度將爲ImageView
作爲圖像的全高(並且ScrollView
將甚至滾動),因此可能需要adjustViewBounds。這種行爲的原因是,FrameLayout
doesn't care about layout_width and layout_height of childs。
相關問題
- 1. 是否有可能知道JFrame是否完全可見?
- 2. 如何知道CWnd滾動條是否可見?
- 3. 我如何檢查我的活動是否完全不可見?
- 4. 滾動型可見查看
- 5. 檢查UITableViewCell是否完全可見
- 6. 檢查TextView是否完全可見
- 7. 檢查元素是否完全可見
- 8. MVC5 - 如何知道動作輸入是否完全爲空
- 9. 如何知道活動結果集是否被完全提取?
- 10. 檢查元素在溢出滾動中是否完全可見DIV
- 11. UIWebView內部滾動查看
- 12. 如何知道藍點是否在我的mapView的可見部分內?
- 13. 如何知道Octave是否可以完全訪問64位內存範圍
- 14. 檢查UITableViewCell對於自動播放是否完全可見
- 15. 如何知道滾動條是否在元素的底部
- 16. 如何知道用戶是否在Kivy中滾動或滾動?
- 17. 查看是否有任何QTips可見?
- 18. 如何平滑滾動RecyclerView如果產品不完全可見
- 19. Android滾動最後可見的ListItem,直到它完全可見
- 20. Webview內容不可見完全沒有在ios滾動
- 21. 是否有可能使透明div的內容完全可見?
- 22. Vaadin 7如何檢查滾動條是否可見
- 23. 如何檢查滾動條是否可見?
- 24. 如何滾動頁面使字段完全可見
- 25. 如何知道任何片段是活動還是可見?
- 26. 如何知道ASIFormDataRequest是否完成?
- 27. 如何知道下載是否完成
- 28. 如何知道函數是否完成?
- 29. style.clip爲空 - 需要知道部分div是否可見
- 30. 是否可以僅提取可滾動div的可見內容?
試試這個:http://stackoverflow.com/a/25528434/3148266 – akshay7692