Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
  • Putting GIF images in your Android application

    • 0
    • 1
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 154
    Comment on it

    Put Your GIF image in /raw folder and put the below code in your project

    public class CustomGifView extends ImageView {
    
        Movie movie;
        InputStream inputStream;
        private long mMovieStart;
    
        public CustomGifView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
    
        public CustomGifView(Context context) {
            super(context);
        }
    
        public CustomGifView(Context context, AttributeSet attrs) {
            super(context, attrs);
            setFocusable(true);
            inputStream = context.getResources()
                    .openRawResource(R.raw.yourgifimage);
            byte[] array = streamToBytes(inputStream);
            movie = Movie.decodeByteArray(array, 0, array.length);
    
        }
    
        private byte[] streamToBytes(InputStream is) {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(
                    1024);
            byte[] buffer = new byte[1024];
            int len;
            try {
                while ((len = is.read(buffer)) >= 0) {
                    byteArrayOutputStream.write(buffer, 0, len);
                    return byteArrayOutputStream.toByteArray();
                }
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
            return null;
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            long now = SystemClock.uptimeMillis();
            if (mMovieStart == 0) { // first time
                mMovieStart = now;
            }
            if (movie != null) {
                int dur = movie.duration();
                if (dur == 0) {
                    dur = 3000;
                }
                int relTime = (int) ((now - mMovieStart) % dur);
                movie.setTime(relTime);
                movie.draw(canvas, getWidth() - 200, getHeight() - 200);
                invalidate();
            }
        }
    
    }
    

    Now, in your xml code you can use this CustomGifView like this:

            <CustomGifView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
            />
    

    You have succesfully placed GIF image in your app!

 0 Comment(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: