как загрузить изображения с SDCard в Corona SDK - PullRequest
4 голосов
/ 09 декабря 2011

Как я могу отобразить изображение с SDCard или памяти телефона с помощью Corona SDK? `

Ответы [ 2 ]

6 голосов
/ 20 октября 2012

Можно читать и записывать файлы на SD-карту, используя LFS и IO API на Android.

Чтобы получить доступ к встроенной памяти телефона, добавьте разрешение Android «android.permission.WRITE_EXTERNAL_STORAGE» и установите путь к «/». Оттуда вы можете получить доступ к карте памяти.

Пример:

local lfs = require("lfs")
local path = "/"
local pathType = ""

-- Check to see if path exists
if path and lfs.attributes( path ) then
    pathType = lfs.attributes( path ).mode
end

-- Check if path is a directory
if pathType == "directory" then
   for file in lfs.dir( path ) do
       if "." ~= file and ".." ~= file then
          -- Get the file attributes.
          local fileAtr = lfs.attributes( path .. "/" .. file )
          -- Print path, name and type of file (Directory or file)
          print(path,file,fileAtr.mode)
       end
    end
end

Это напечатает путь, имя файла и тип файла в окне терминала. (Проверено только на устройствах Mac и Android.)

Я нашел способ отобразить изображение вне песочницы на Android и на симуляторе. (ПК не тестировался)

Пример:

local lfs = require("lfs")
    --------------------------- Change this path ---------------------------
local path = "path/to/the/image.jpg"                                    -- Change this path to the path of an image on your computer
------------------------------------------------------------------------


local tmpPath = system.pathForFile("tmp.jpg",system.TemporaryDirectory) -- Destination path to the temporary image

--------------------------- Read ----------------------------
local file, reason = io.open( path, "r" )                               -- Open the image in read mode
local contents
if file then
    contents = file:read( "*a" )                                        -- Read contents
    io.close( file )                                                    -- Close the file (Important!)
else
    print("Invalid path")
    return
end

--------------------------- Write ----------------------------

local file = io.open( tmpPath, "w" )                                    -- Open the destination path in write mode
if file then
    file:write(contents)                                                -- Writes the contents to a file
    io.close(file)                                                      -- Close the file (Important!)
else
    print("Error")
    return
end

---------------------- Open and remove -----------------------
local img = display.newImage("tmp.jpg",system.TemporaryDirectory)       -- Display the image from the temporary directory
os.remove(tmpPath)                                                      -- Removes the image, so that we can load another image.
0 голосов
/ 09 декабря 2011

Я использую Corona SDK для разработки для iOS, но я полагаю, что приложения Corona находятся в изолированной программной среде, и вы не можете читать что-либо вне песочницы. Возможно, это верно только для приложений iOS.

...