Im trying to Enlarge the Centre most listview item. (Eventually, I hope to expand this into a sort of simple and light 3D effect that elements will appear to zoom in when in
1st no text appearing
On your MySimpleArrayAdapter, getView method. You forgot to setText for your textView. There is why no text is showing.
2nd make middle item bigger
You try to getLastVisiblePosition before your listview adapter is setup. I guess value of v must be 0 and position == 0. There is why the topper item become bigger. If you try change it to position == 1 or 2, maybe the second or third item will become bigger.
In order to make middle item become bigger, setOnScrollLinstener to listview
public int currentLargedPosition = 0 // global value
listView.setOnScrollListener(new OnScrollListener(){
@Override
public void onScroll(AbsListView arg0, int firstVisibleItem, int visibleItemCount, int totalItemCount){
Log.i("Scroll","first "+firstVisibleItem+", visibleItemCount "+visibleItemCount+",totalCount "+totalItemCount);
int center = (visibleItemCount)/2 + firstVisibleItem;
if(currentLargedPosition != center){
enlargeMiddleView(currentLargedPosition-firstVisibleItem, center-firstVisibleItem);
currentLargedPosition = center;
}
}
@Override
public void onScrollStateChanged(AbsListView arg0, int arg1) {
Log.i("scroll","onScrollStateChanged");
}
});
void enlargeMiddleView(int oldPosition, int newPosition){
// get enlarged view and make it return default size
TextView newTextView = (TextView)listView.getChildAt(oldPosition).findViewById(R.id.text);
newTextView.setHeight(50);
// get the current center view and make it bigger
TextView oldTextView = (TextView)listView.getChildAt(newPosition).findViewById(R.id.text);
oldTextView.setHeight(300);
}