Hirdetés

Keresés

Új hozzászólás Aktív témák

  • heihachi

    addikt

    Sziasztok!

    Szeretnék egy parallax scroll effektet létrehozni, ahol a háttér, mondjuk egy kép más sebességgel gördül, mint az előtte lévő szöveg. Ezzel meg is volnék, ezt úgy értem el, hogy a layoutban egy framelayout van, azon belül két saját, scrollview-ból származtatott saját view.

    <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:paddingBottom="@dimen/null_dp"
    android:paddingLeft="@dimen/null_dp"
    android:paddingRight="@dimen/null_dp"
    android:paddingTop="@dimen/null_dp"
    tools:context="com.example.simpletestproject.ParaScroll" >

    <com.example.simpletestproject.MyScrollView
    android:id="@+id/background_scroll"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:scrollbars="none" >

    <ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:scaleType="center"
    android:src="@drawable/kek_atmenet" />
    </com.example.simpletestproject.MyScrollView>

    <com.example.simpletestproject.MyScrollView
    android:id="@+id/foreground_scroll"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:overScrollMode="always" >

    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="@string/lorem_ipsum"
    android:textColor="@color/white" />

    </com.example.simpletestproject.MyScrollView>

    </FrameLayout>

    A scrollview leszármazottja sincs túlbonyolítva:
    package com.example.simpletestproject;

    import android.content.Context;
    import android.graphics.Matrix;
    import android.util.AttributeSet;
    import android.view.MotionEvent;
    import android.widget.ScrollView;

    public class MyScrollView extends ScrollView {

    public MyScrollView synchronizedScrollView;
    public String name = "default";

    public MyScrollView(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
    }

    public MyScrollView(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub
    }

    public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    // TODO Auto-generated constructor stub
    }

    public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);
    // TODO Auto-generated constructor stub
    }

    public boolean onTouchEvent(MotionEvent event) {
    boolean synchronizedScrollViewReturn = true;
    boolean scrollViewReturn = super.onTouchEvent(event);
    if (synchronizedScrollView != null) {
    Matrix matrix = new Matrix();
    matrix.setScale(0.5f, 0.5f);
    event.transform(matrix);
    synchronizedScrollViewReturn = synchronizedScrollView.onTouchEvent(event);
    }
    return synchronizedScrollViewReturn && scrollViewReturn;
    }

    }

    A synchronizedScrollView a háttér scrollview, megkapja az is az érintés információkat, és mozog az is.

    Ez tök jól működik, a háttér más sebességgel szkrollozódik, mint az előtér, csak a gondom az, hogy jó lenne ezeket egymáshoz igazítani, hogy egyszerre érjenek a tetejére és az aljára. Nem lenne ez bonyolult, mert a méretarányok alapján a mátrixot amit skálázásra használok simán be lehetne lőni. Csakhogy képtelen vagyok megmérni a view-k méretét, akármit próbálok baromságok jönnek vissza. Az 1600 pixeles háttérre 2133, a rohadtul hosszú szövegre, ami vagy 10 képernyő meg 38 pl, és képtelen vagyok felfogni, hogy hogyan kellene megoldani.

    Volna valami ötletetek?

  • heihachi

    addikt

    Sziasztok!

    Szeretnék segítséget kérni Google Map-el kapcsolatban. Ezzel próbálkoznék:
    https://developers.google.com/maps/documentation/android/intro?hl=hu
    de amikor futtatom akkor az alábbi hibát kapom:

    Azért nem tudok vele mit kezdeni, mert az API Consoleban pont ezek vannak beállítva:

    A keytool sem mond mást:

    Hálás lennék minden segítségért.

Új hozzászólás Aktív témák