Mam aplikację na Androida, która może odtwarzać audio/wideo i wyświetlać zdjęcia. W przypadku filmów chcę nakładać przycisk odtwarzania na obrazie podglądu, a także na widokach listy .. W tej chwili robię to z ImageView w formacie xml, a następnie losowanie to lista warstw warstw, która Definiuję programowo, ponieważ jedno z obrazów jest dynamiczne, oczywiście przycisk odtwarzania jest statyczny. Chcę ustawić przycisk odtwarzania 10px od dołu i wyśrodkować w poziomie.Android - Najlepszy sposób na nałożenie przycisku odtwarzania na obrazie/miniaturze
My ImageView definiuje się następująco (XML)
<ImageView
android:id="@+id/EvidencePreview"
android:layout_width="267dp"
android:layout_height="201dp"
android:scaleType="centerCrop"
android:layout_margin="3dp"
android:layout_gravity="center_horizontal|center_vertical"/>
ImageView jest częścią formy, w którym użytkownik może edycję tytułu i inne informacje. Wtedy w mojej aktywności teraz tworzę listę warstw takiego:
Resources resources = mContext.getResources();
Drawable playOverlayDrawable = resources.getDrawable(R.drawable.play_overlay_large);
Drawable[] layers = new Drawable[2];
layers[0] = Drawable.createFromPath(tb.filePath);
layers[1] = playOverlayDrawable;
LayerDrawable layerDrawable = new LayerDrawable(layers);
ViewGroup.LayoutParams lp = iv.getLayoutParams();
int imageHeight = lp.height;
int imageWidth = lp.width;
int overlayHeight = layers[1].getIntrinsicHeight();
int overlayWidth = layers[1].getIntrinsicWidth();
int lR = (imageWidth - overlayWidth)/2;
int top = imageHeight - (overlayHeight + 10);
int bottom = 10;
layerDrawable.setLayerInset(1, lR, top, lR, bottom);
iv.setImageDrawable(layerDrawable);
działa to tylko wtedy, gdy orientacja obrazu jest pozioma. Należy pamiętać, że obraz/miniatura to MINI_KIND, co oznacza, że ma być 512 x 384, ale widzę, że w rzeczywistości nie jest to rozmiar. Na moim telefonie mają rozmiar 480 x 800 lub 800 x 480 w zależności od orientacji kamera była w .. Ponieważ moja szerokość/wysokość jest wcześniej zdefiniowana, chcę tylko, aby warstwa przycisku odtwarzania nie skalała się w ogóle i dopasować ją w ten sam sposób za każdym razem ..
Innym oczywistym sposobem na zrobienie tego czy użyłbym względnego układu (czy może układu ramek?), ale miałem nadzieję, że tego uniknę, ponieważ używam tego samego kodu do wyświetlania zarówno zdjęć, jak i filmów (z których oba mają podgląd miniatury obrazu - ale tylko filmy powinien mieć przycisk odtwarzania na nich).
Każdy pomysł, jak wyrównać warstwy z listą warstw lub alternatywami, które działałyby równie dobrze lub lepiej?
Zrobiłem to, ale nie mogłem uzyskać kliknięć, aby zarejestrować się już w widoku siatki – CQM