Я хочу сделать свой макет в 4 раза больше, чем размер дисплея. Я делаю это так:
private lateinit var view: View
private lateinit var binding: ActivitySkyBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this,
R.layout.activity_sky
)
view = binding.skyActivity
view.setBackgroundResource(R.drawable.gradient)
}
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
val params = view.layoutParams
params.width = view.resources.displayMetrics.widthPixels*4
params.height = view.resources.displayMetrics.heightPixels*4
view.layoutParams = params
}
А вот мой XML макет:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<ScrollView
android:id="@+id/sky_activity"
android:layout_width="0dp"
android:layout_height="0dp"
android:fillViewport="true"
tools:context=".skyActivity">
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
</HorizontalScrollView>
</ScrollView>
Я думаю, как я установил новый размер работает, потому что мой градиент выглядит иначе (я вижу его левую верхнюю часть), но я не могу прокрутить в любом направлении. Мне нужно иметь возможность прокручивать по вертикали, по горизонтали и по диагонали, а также увеличивать / уменьшать масштаб.