दिलचस्प पोस्ट
लोड किए गए छवियों के लिए jQuery का ईवेंट com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: संचार लिंक विफलता कनेक्शन का कारण समाप्त हुआ: recv विफल X86 और x64 के बीच चल बिन्दु अंकगणित में अंतर लिनक्स के लिए पायथन का उपयोग करके कुंजी प्रेस इवेंट का अनुकरण करना सी # ग्लोबल वैरिएबल्स JFreeChart का उपयोग करके श्रृंखला बदलते समय यादृच्छिक त्रुटियां सी # एचटीटीपी क्लाइंट 4.5 मल्टीपार्ट / फॉर्म-डेटा अपलोड PHP छवि अपलोड सुरक्षा जांच सूची Autowayout के साथ सभी subviews फिट करने के लिए पर्यवेक्षण का आकार कैसे बदलना है? फ़ाइल खोज में regex का उपयोग कैसे करें एएनएसआई प्रारूप क्या है? नारंगी मैट्रिक्स को सरणी मुझे समझ में नहीं आ रहा- डब्लूएल, -पैथ – डब्लूएल, कैसे केवल एकल उद्धरणों से बचने के लिए? Javadoc टिप्पणियों कार्यान्वयन में जोड़ा जाना चाहिए?

एंड्रॉइड छवि व्यू में फीका और फीका

मुझे एक स्लाइडशो के साथ कुछ परेशानी हो रही है, मैं निर्माण कर रहा हूँ

मैंने एक्स में एमएएल के लिए 2 एनीमेशन बना लिए हैं और फीका आउट कर दिया है:

fadein.xml

<?xml version="1.0" encoding="UTF-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:interpolator="@android:anim/accelerate_interpolator" android:duration="2000"/> </set> 

fadeout.xml

  <?xml version="1.0" encoding="UTF-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:interpolator="@android:anim/accelerate_interpolator" android:duration="2000"/> </set> 

क्या करने की कोशिश कर रहा हूँ, एक छवि दृश्य से छवियों को फेड प्रभाव का उपयोग करके बदलना है, इसलिए वर्तमान में प्रदर्शित छवि फीका हो जाएगी, और कोई दूसरा फीका कर देगा। यह देखते हुए कि मेरे पास पहले से ही एक छवि है, मैं इस छवि को बिना किसी छवि को नष्ट कर सकता हूं समस्या, इस के साथ:

  Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.your_fade_in_anim); imageView.startAnimation(fadeoutAnim); 

लेकिन फिर, मैं अगले छवि को प्रदर्शित करना चाहता हूं:

  imageView.setImageBitmap(secondImage); 

यह सिर्फ छवि दृश्य में दिखाई देता है, और जब मैं एनीमेशन सेट करता हूं तो यह छवि छुपाती है, इसमें फीका … इसमें ठीक करने का कोई तरीका है, मेरा मतलब है, जब मैं छवि बनाम .सेटमेजबिटमैप (दूसरा इमेज) करता हूं; कमांड, छवि तुरंत दिखाई नहीं देती है, और केवल तब जब एनीमेशन में फीका निष्पादित होती है?

Solutions Collecting From Web of "एंड्रॉइड छवि व्यू में फीका और फीका"

इसे लागू करने के तरीके को कार्यान्वित करने के लिए, आपको एनीमेशन लिस्टनर जोड़ना होगा ताकि आप एनीमेशन की शुरुआत और समाप्ति का पता लगा सकें। फ़ेड आउट के लिए जब एन्निमेशन एण्ड () पर कॉल किया जाता है, तो आप अपनी छविदृश्य वस्तु की दृश्यता को देखने के लिए सेट कर सकते हैं। INVISIBLE, चित्रों को स्विच करें और एनीमेशन में आपका फीका शुरू करें – आपको यहाँ एक और एनीमेशन लिक्टर की भी आवश्यकता होगी जब आप एनीमेशन में अपने फीका के लिए एनीमेशन एन्ड () पर प्राप्त करते हैं, तो देखने के लिए ImageView सेट करें। विजुअल और आपको उस प्रभाव को देना चाहिए जिसे आप ढूंढ रहे हैं।

मैंने इससे पहले एक समान प्रभाव लागू किया है, लेकिन मैंने एक ImageView के बजाय 2 ImageViews के साथ एक ViewSwitcher का उपयोग किया है। आप "इन" और "बाहर" एनीमेशन सेट कर सकते हैं, जिसमें व्यूस्वविचर के लिए आपकी फीका में और फीका हो गया है, ताकि यह एनीमेशन लिस्टनर कार्यान्वयन का प्रबंधन कर सके। फिर आपको केवल 2 इमेजिव्यू के बीच एक वैकल्पिक विकल्प चाहिए।

संपादित करें: थोड़ा और अधिक उपयोगी होने के लिए, यहां एक त्वरित उदाहरण है कि ViewSwitcher का उपयोग कैसे करें मैंने https://github.com/aldryd/imageswitcher पर पूर्ण स्रोत शामिल किया है।

activity_main.xml

  <ViewSwitcher android:id="@+id/switcher" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:inAnimation="@anim/fade_in" android:outAnimation="@anim/fade_out" > <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:scaleType="fitCenter" android:src="@drawable/sunset" /> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:scaleType="fitCenter" android:src="@drawable/clouds" /> </ViewSwitcher> 

MainActivity.java

  // Let the ViewSwitcher do the animation listening for you ((ViewSwitcher) findViewById(R.id.switcher)).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ViewSwitcher switcher = (ViewSwitcher) v; if (switcher.getDisplayedChild() == 0) { switcher.showNext(); } else { switcher.showPrevious(); } } }); 

मैं आपके जैसा एक ही लक्ष्य हासिल करना चाहता हूं, इसलिए मैंने निम्नलिखित विधि को लिखा है, जो वास्तव में ऐसा करता है कि यदि आप इसे एक छविदृश्य और छवि ड्रॉएबल के संदर्भों की एक सूची देते हैं।

 ImageView demoImage = (ImageView) findViewById(R.id.DemoImage); int imagesToShow[] = { R.drawable.image1, R.drawable.image2,R.drawable.image3 }; animate(demoImage, imagesToShow, 0,false); private void animate(final ImageView imageView, final int images[], final int imageIndex, final boolean forever) { //imageView <-- The View which displays the images //images[] <-- Holds R references to the images to display //imageIndex <-- index of the first image to show in images[] //forever <-- If equals true then after the last image it starts all over again with the first image resulting in an infinite loop. You have been warned. int fadeInDuration = 500; // Configure time values here int timeBetween = 3000; int fadeOutDuration = 1000; imageView.setVisibility(View.INVISIBLE); //Visible or invisible by default - this will apply when the animation ends imageView.setImageResource(images[imageIndex]); Animation fadeIn = new AlphaAnimation(0, 1); fadeIn.setInterpolator(new DecelerateInterpolator()); // add this fadeIn.setDuration(fadeInDuration); Animation fadeOut = new AlphaAnimation(1, 0); fadeOut.setInterpolator(new AccelerateInterpolator()); // and this fadeOut.setStartOffset(fadeInDuration + timeBetween); fadeOut.setDuration(fadeOutDuration); AnimationSet animation = new AnimationSet(false); // change to false animation.addAnimation(fadeIn); animation.addAnimation(fadeOut); animation.setRepeatCount(1); imageView.setAnimation(animation); animation.setAnimationListener(new AnimationListener() { public void onAnimationEnd(Animation animation) { if (images.length - 1 > imageIndex) { animate(imageView, images, imageIndex + 1,forever); //Calls itself until it gets to the end of the array } else { if (forever){ animate(imageView, images, 0,forever); //Calls itself to start the animation all over again in a loop if forever = true } } } public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } }); } 

क्या आपने कस्टम ऐनिमेशन के बजाय ट्रांज़िशन ड्रॉ करने के बारे में सोचा है? https://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html

आप जो चाह रहे हैं उसे प्राप्त करने का एक तरीका यह है:

 // create the transition layers Drawable[] layers = new Drawable[2]; layers[0] = new BitmapDrawable(getResources(), firstBitmap); layers[1] = new BitmapDrawable(getResources(), secondBitmap); TransitionDrawable transitionDrawable = new TransitionDrawable(layers); imageView.setImageDrawable(transitionDrawable); transitionDrawable.startTransition(FADE_DURATION); 

अलादीन क्यू के समाधान के आधार पर, यहां एक सहायक फ़ंक्शन है जो मैंने लिखा था, जो एमेनिशन में कुछ फीका / फीका चलने के दौरान एक छवि दृश्य में छवि को बदल देगी:

 public static void ImageViewAnimatedChange(Context c, final ImageView v, final Bitmap new_image) { final Animation anim_out = AnimationUtils.loadAnimation(c, android.R.anim.fade_out); final Animation anim_in = AnimationUtils.loadAnimation(c, android.R.anim.fade_in); anim_out.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) {} @Override public void onAnimationRepeat(Animation animation) {} @Override public void onAnimationEnd(Animation animation) { v.setImageBitmap(new_image); anim_in.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) {} @Override public void onAnimationRepeat(Animation animation) {} @Override public void onAnimationEnd(Animation animation) {} }); v.startAnimation(anim_in); } }); v.startAnimation(anim_out); } 

मैं पुरानी एक के लिए नई छवि को बदलने के लिए इस्तेमाल किया fadeIn एनीमेशन

 ObjectAnimator.ofFloat(imageView, View.ALPHA, 0.2f, 1.0f).setDuration(1000).start(); 

प्रोग्रामिंग के लिए मैं इस तरह की नियमित का उपयोग कर रहा हूं।

  final Animation anim_out = AnimationUtils.loadAnimation(context, android.R.anim.fade_out); final Animation anim_in = AnimationUtils.loadAnimation(context, android.R.anim.fade_in); anim_out.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) {} @Override public void onAnimationRepeat(Animation animation) {} @Override public void onAnimationEnd(Animation animation) { //////////////////////////////////////// // HERE YOU CHANGE YOUR IMAGE CONTENT // //////////////////////////////////////// //ui_image.setImage... anim_in.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) {} @Override public void onAnimationRepeat(Animation animation) {} @Override public void onAnimationEnd(Animation animation) {} }); ui_image.startAnimation(anim_in); } }); ui_image.startAnimation(anim_out); 

सबसे अच्छा और आसान तरीका, मेरे लिए यह था ..

-> बस हेन्डलर वाले नींद के साथ एक धागा बनाएं ()

 private ImageView myImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shape_count); myImageView= (ImageView)findViewById(R.id.shape1); Animation myFadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein); myImageView.startAnimation(myFadeInAnimation); new Thread(new Runnable() { private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { Log.w("hendler", "recived"); Animation myFadeOutAnimation = AnimationUtils.loadAnimation(getBaseContext(), R.anim.fadeout); myImageView.startAnimation(myFadeOutAnimation); myImageView.setVisibility(View.INVISIBLE); } }; @Override public void run() { try{ Thread.sleep(2000); // your fadein duration }catch (Exception e){ } handler.sendEmptyMessage(1); } }).start(); } 

आप इसे दो साधारण बिंदुओं से कर सकते हैं और अपने कोड में बदलाव कर सकते हैं

1. अपनी एक्सएमएल में अपने प्रोजेक्ट के एनीम फ़ोल्डर में, फीड इन सेट करें और डेरिवेशन टाइम की समानता को समाप्त न करें

2. एक्शन के फीका आउट होने से पहले जावा क्लास में, सेकंड इमेज सेट करें दृश्य दृश्यता फिर से एनीमेशन समाप्त हो जाने के बाद एनीमेशन ने दूसरा इमेज सेट करना शुरू कर दिया। दृश्य दृश्यता जिसे आप दिखने में दिखाना चाहते हैं

fadeout.xml

 <alpha android:duration="4000" android:fromAlpha="1.0" android:interpolator="@android:anim/accelerate_interpolator" android:toAlpha="0.0" /> 

fadein.xml

 <alpha android:duration="6000" android:fromAlpha="0.0" android:interpolator="@android:anim/accelerate_interpolator" android:toAlpha="1.0" /> 

आप में जावा वर्ग

 Animation animFadeOut = AnimationUtils.loadAnimation(this, R.anim.fade_out); ImageView iv = (ImageView) findViewById(R.id.imageView1); ImageView iv2 = (ImageView) findViewById(R.id.imageView2); iv.setVisibility(View.VISIBLE); iv2.setVisibility(View.GONE); animFadeOut.reset(); iv.clearAnimation(); iv.startAnimation(animFadeOut); Animation animFadeIn = AnimationUtils.loadAnimation(this, R.anim.fade_in); iv2.setVisibility(View.VISIBLE); animFadeIn.reset(); iv2.clearAnimation(); iv2.startAnimation(animFadeIn);