1
好吧,我已經重寫了畢加索方法,我的邏輯如下。在適配器中,我有一個用於下載圖像的佈局,但在此之前,我在整個屏幕上都有一個FrameLayout來存儲我的動畫。我的代碼是未來:畢加索無法加載動畫@override
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final holder mHolder;
if (convertView == null) {
mHolder = new holder();
convertView = mInflater.inflate(R.layout.adapter_prodavci, parent, false);
mHolder.slika = (ImageView) convertView.findViewById(R.id.ImageViewProdavciMain);
mHolder.loading = (ImageView) convertView.findViewById(R.id.loadingImageAdapterProdavci);
mHolder.frame = (FrameLayout) convertView.findViewById(R.id.frameAdapterProdavci);
convertView.setTag(mHolder);
} else {
mHolder = (holder) convertView.getTag();
}
final Animation myAnim = AnimationUtils.loadAnimation(mContext.getApplicationContext(), R.anim.rotator);
Prodavci prodavci = getItem(position);
Picasso.with(mContext)
.load(prodavci.getSlika())
.into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
// myAnim.cancel();
// myAnim.reset();
mHolder.loading.clearAnimation();
mHolder.loading.setVisibility(View.GONE);
mHolder.loading.invalidate();
mHolder.frame.setVisibility(View.GONE);
mHolder.frame.invalidate();
mHolder.slika.setVisibility(View.VISIBLE);
mHolder.slika.setImageBitmap(bitmap);
mHolder.slika.bringToFront();
mHolder.slika.invalidate();
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
mHolder.loading.startAnimation(myAnim);
}
});
return convertView;
}
和我的XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_margin="11.333dp"
android:layout_marginLeft="11.33dp"
android:layout_marginRight="11.33dp"
android:layout_marginTop="11.33dp"
android:background="@drawable/okvirlogo">
<aik.akcijeikatalozi.objetki.SquareImageView
android:id="@+id/ImageViewProdavciMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_margin="3dp"
android:background="@android:color/transparent"
android:scaleType="center" />
</LinearLayout>
<FrameLayout
android:id="@+id/frameAdapterProdavci"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="#ffffff">
<ImageView
android:id="@+id/loadingImageAdapterProdavci"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal|center_vertical"
android:background="@android:color/transparent"
android:src="@drawable/loadingwheels" />
</FrameLayout>
</RelativeLayout>
的問題是,動畫不被隱藏的方法onBitmapLoaded後,它是隱藏的,當我向下滾動GridView控件,並拉回來,然後它消失了。有什麼建議麼?