Я пытаюсь создать простую карту с помощью ImageView внутри TwoDScrollView (так что я могу прокручивать в обоих направлениях одновременно).Сделать ImageView внутри ScrollView в два раза больше, чем экран
Вот мой макет XML:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:clickable="true" >
<com.example.test.TwoDScrollView
android:id="@+id/scrollView"
android:fillViewport="true"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.example.test.TwoDScrollView>
</FrameLayout>
TwoDScrollView взята отсюда: https://github.com/derekbrameyer/CustomScrollViews/blob/master/library/src/com/doomonafireball/customscrollviews/widget/TwoDScrollView.java
Тогда вот ява код:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_area, container, false);
scrollView = (TwoDScrollView) root.findViewById(R.id.scrollView);
MainActivity act = (MainActivity) getActivity();
Drawable map = act.getResources().getDrawable(R.drawable.my_map);
Bitmap bitmap = ((BitmapDrawable) map).getBitmap();
int viewWidth = container.getWidth();
int viewHeight = container.getHeight();
int imageWidth = bitmap.getWidth();
int imageHeight = bitmap.getHeight();
int desiredHeight = viewHeight * 2;
float r = desiredHeight/(float) imageHeight;
int desiredWidth = (int) (imageWidth * r);
ImageView imageView = new ImageView(act);
imageView.setAdjustViewBounds(true);
imageView.setImageBitmap(bitmap);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
scrollView.addView(imageView);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(desiredWidth, desiredHeight);
imageView.setLayoutParams(params);
imageView.invalidate();
return root;
}
В моем случае значения:
viewWidth = 1440
viewHeight = 2308
ImageWidth = 2000
ImageHeight = 1603
desiredWidth = 5759
desiredHeight = 4616
г = 2,8796008
Все же - это игнорируется. Высота изображения слишком мала (я вижу часть фона), ширина слегка прокручивается.
Как это исправить?
С уважением
Каков результат 'adb shell dumpsys activity top'? – pskink
Это слишком долго, поэтому я отправляю его на pastebin: http://pastebin.com/1z3VQrAk – Makalele
в иерархии представлений нет 'TwoDScrollView' (начиная с строки # 53 в вашем выходе) – pskink