In sostanza, sto ri-chiedendo this question ma per l'implementazione su Android.Scorri tra le immagini filtrate per Android
Sto cercando di consentire agli utenti di scorrere tra i filtri su un'immagine statica. L'idea è che l'immagine rimanga sul posto mentre il filtro scorre sopra di esso. Snapchat ha recentemente rilasciato una versione che implementa questa funzione . This video shows exactly what I'm trying to accomplish at 1:05.
Ho provato a compilare un elenco con le sovrapposizioni e sfogliarlo con l'onFling e disegnare con onDraw, ma perdo le animazioni. C'è un modo in cui ciò può essere fatto con ViewPager?
MODIFICA: come richiesto, ho fornito la mia implementazione per l'impaginazione della visualizzazione overlay. Riempie il viewpager con immagini png trasparenti che si trovano sopra una vista dell'immagine. Inoltre, questo codice è in C#, poiché sto usando Xamarin Android. E 'abbastanza simile a Java per chi non conosce C#
...
static List<ImageView> overlayList = new List<ImageView>();
...
public class OverlayFragmentAdapter : FragmentPagerAdapter
{
public OverlayFragmentAdapter(Android.Support.V4.App.FragmentManager fm) : base(fm)
{
}
public override int Count
{
get { return 5; } //hardcoded temporarily
}
public override Android.Support.V4.App.Fragment GetItem(int position)
{
return new OverlayFragment();
}
}
public class OverlayFragment : Android.Support.V4.App.Fragment
{
public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.Inflate (Resource.Layout.fragment_overlay, container, false);
LinearLayout l1 = view.FindViewById<LinearLayout> (Resource.Id.overlay_container);
ImageView im = new ImageView (Activity);
im.SetImageResource (Resource.Drawable.Overlay); //Resource.Drawable.Overlay is a simple png transparency I created. R
l1.AddView (im);
overlayList.AddElement (im);
return view;
}
}
XML layout di attività:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom">
<ImageView
android:id="@+id/background_image"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<RelativeLayout <!-- This second layout is for buttons which I have omitted from this code -->
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/edit_layout">
<android.support.v4.view.ViewPager
android:id="@+id/overlay_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
</RelativeLayout>
Frammento Overlay XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/overlay_container"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center" />
Per riassumere brevemente: il viewpager si trova sulla cima della prima imageview, che funge da sfondo. Il metodo OnCreateView crea un frammento di sovrapposizione e una visualizzazione di immagini sovrapposte da una risorsa, che inserisce all'interno del layout di overlay_container. Salvare l'immagine (che non ho postato poiché è al di fuori dello scopo di questa domanda) è semplice, tutto ciò che viene fatto è creare una bitmap di sfondo, una bitmap di sovrapposizione e usa una tela per disegnare la sovrapposizione sullo sfondo, quindi scrive su file.
Ciao uomo, questo non è possibile semplicemente rendendo lo sfondo dei cercapersone trasparenti e mettendo una vista immagine dietro di esso? Ha 100 taglie, quindi non sentivo che fosse abbastanza completo di una risposta, ma è così che lo farei e non riesco a capire perché non funzionerebbe. – Ben
@Ben Ehi, Ecco come ho implementato le sovrapposizioni. Avevo un'immagine dietro e il pager della vista ha alcune sovrapposizioni. Tuttavia, non penso che funzionerebbe per i filtri immagine (nero/bianco, seppia, ecc.) –
ahh, ho solo guardato per alcuni secondi e ho visto il testo volare sopra le righe. buona fortuna; P – Ben