Ho creato una vista per lo scorrimento e al suo interno è stata inserita una visualizzazione di immagini. Mi piacerebbe che lo scrolls per ridimensionarlo nello stesso modo in cui viene fatto nell'immagine qui sotto, ma finora ho avuto scarso successo.Come faccio a ridimensionare la mia visione di immagini all'interno della mia vista a scorrimento come è fatto in questa immagine?
Nei miei tentativi l'immagine viene ridimensionata sullo scroll ma, dopo il ridimensionamento, rimane lo spazio. Come si modifica il sottostante:
Image:
My Code finora:
activity_main.xml
<ImageView
android:layout_gravity="center"
android:adjustViewBounds="true"
android:layout_width="601dp"
android:layout_height="250dp"
android:paddingTop="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:scaleType="fitXY"
android:id="@+id/contactPic"
android:src="@drawable/stock"
android:clickable="true"/>
MainActivity:
@Override
public void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy) {
final ImageView contactPicture = (ImageView) findViewById(R.id.contactPic);
final RelativeLayout contactLayout = (RelativeLayout) findViewById(R.id.ContactRLayout);
if (scrollView == contactScrollView) {
View view = (View) scrollView.getChildAt(scrollView.getChildCount() - 1);
int distanceFromPageEnd = (view.getBottom() - (scrollView.getHeight() + scrollView.getScrollY()));
Log.e("onScrollChanged", "distance from bottom = " + String.valueOf(distanceFromPageEnd));
if (distanceFromPageEnd >= 1408)
{
contactPicture.getLayoutParams().height = (distanceFromPageEnd - 1408);
contactPicture.requestLayout();
}
}
ScrollViewListener:
public interface ScrollViewListener {
void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy);
}
ObservableScrollView:
public class ObservableScrollView extends ScrollView {
private ScrollViewListener scrollViewListener = null;
public ObservableScrollView(Context context) {
super(context);
}
public ObservableScrollView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public ObservableScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setScrollViewListener(ScrollViewListener scrollViewListener) {
this.scrollViewListener = scrollViewListener;
}
public void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
}
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
super.onScrollChanged(x, y, oldx, oldy);
if(scrollViewListener != null) {
scrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
}
}
}
controllo iosched fonte app ... – Selvin
ciò che è iosched? –
Il progetto sembra fallire quando costruisce e quando visito l'xml che hai descritto tutto ciò che è mostrato sulla pagina è la parola altoparlanti con un divisore sopra di esso. Finora il progetto che hai suggerito non è stato d'aiuto. Non sai come risolvere il mio problema –