Ejemplo n.º 1
0
        /// <summary>
        /// Loads Texture2D from URI
        /// </summary>
        /// <returns>The from URI internal.</returns>
        /// <param name="uri">URI.</param>
        public static Texture2D TextureFromUriInternal(string uri)
        {
            if (string.IsNullOrEmpty(uri))
            {
                return(null);
            }

            using (var resolver = ContentResolver)
            {
                var uriAjo = AndroidUri.Parse(uri);
                try
                {
                    var stream    = resolver.CallAJO("openInputStream", uriAjo);
                    var bitmapAjo = C.AndroidGraphicsBitmapFactory.AJCCallStaticOnceAJO("decodeStream", stream);

                    return(Texture2DFromBitmap(bitmapAjo));
                }
                catch (Exception ex)
                {
                    if (Debug.isDebugBuild)
                    {
                        Debug.LogException(ex);
                    }
                    return(null);
                }
            }
        }
            public Builder SetOpenUrlIntent(string url)
            {
                var uri    = AndroidUri.Parse(url);
                var intent = new AndroidIntent(AndroidIntent.ActionView);

                intent.SetData(uri);

                _ajo.CallAJO("setIntent", intent.AJO);
                return(this);
            }
Ejemplo n.º 3
0
        /// <summary>
        /// Loads Texture2D from URI
        /// </summary>
        /// <returns>The from URI internal.</returns>
        /// <param name="uri">URI.</param>
        public static Texture2D TextureFromUriInternal(string uri)
        {
            if (string.IsNullOrEmpty(uri))
            {
                return(null);
            }

            using (var resolver = ContentResolver)
            {
                var uriAjo = AndroidUri.Parse(uri);
                AndroidJavaObject bitmapAjo;
                try
                {
                    var stream = resolver.CallAJO("openInputStream", uriAjo);
                    using (var c = new AndroidJavaClass(C.AndroidGraphicsBitmapFactory))
                    {
                        bitmapAjo = c.CallStaticAJO("decodeStream", stream);
                    }

                    var compressFormatPng = new AndroidJavaClass(C.AndroidGraphicsBitmapCompressFormat).GetStatic <AndroidJavaObject>("PNG");
                    var outputStream      = new AndroidJavaObject(C.JavaIoBytearrayOutputStream);
                    bitmapAjo.CallBool("compress", compressFormatPng, 100, outputStream);
                    byte[] buffer = outputStream.Call <byte[]>("toByteArray");

                    var tex = new Texture2D(2, 2);
                    tex.LoadImage(buffer);
                    return(tex);
                }
                catch (Exception ex)
                {
                    if (Debug.isDebugBuild)
                    {
                        Debug.LogException(ex);
                    }
                    return(null);
                }
            }
        }