나는 scrollview를 만들었고 그 안에 imageview가있다. 아래 이미지에서와 같은 방식으로 크기를 조정할 수있는 스크롤 기능이 필요하지만 지금까지 거의 성공하지 못했습니다.이미지 뷰에서 이미지 뷰의 크기가 어떻게 바뀌나요?
시도 할 때 이미지의 크기가 스크롤되지만 크기를 조정 한 후에 남아있는 공간이 있습니다. 어떻게 당신은 아래의 수정 것 :
이미지 : 지금까지
내 코드 :
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);
}
}
}
검사가 iosched 어떤 응용 프로그램 소스 ... – Selvin
을 iosched을? –
프로젝트가 빌드 될 때 프로젝트가 실패한 것처럼 보입니다. xml을 방문하면 페이지에 표시된 모든 내용은 위에있는 구분선이있는 단어가있는 단어입니다. 지금까지 제안한 프로젝트는 도움이되지 않았습니다. 내 문제를 해결하는 방법을 모르십니까 –