Android React Native에서 이미지 리소스를 로드하는 올바른 자세
공식 문서에서도 이렇게 썼는데 Image는 여기에 이미지 묘사를 썼지만 다른 페이지 문서에서 서로 모순된다. Images는 이 페이지가 들어간 지 얼마 되지 않아 여기에 이미지 묘사를 썼을 것이다. 즉, 정확한 app 내부 이미지 탑재 자세는 다음과 같다.
물론 그림은res의drawable 디렉터리에 존재하고uri에 대응하는 그림의 이름은 접미사가 포함되지 않는다는 것을 기억하십시오.이렇게 하면 그림이 정확하게 불러오고 표시될 수 있다.이 글은 정적 이미지 자원을 불러오는 것도 언급했다. (이 방식은 문제가 있어 불러올 수 없다.) 나는 index에 있다.android.js는 디렉터리에 icon이라는 이름을 던졌다.png 그림을 불러옵니다.
결과적으로 그림이 불러오지 않았지만 틀린 보고도 하지 않았다.일단 그것을 무시하고, 어쨌든 현재 판본은 아직 불안정하니, 정식으로 안정되면 다시 이야기하자.어쨌든 지금 리액트 네이티브를 배우는 건 구덩이를 메우는 과정이야.그리고 만약에 핸드폰 메모리 카드에 있는 이미지 자원을 불러오려면 그 방식도 매우 간단하다. 만약에 내가 지금 sdcard 루트 디렉터리에 있는 icon을 불러오려고 한다면.png.대응하는 코드는 다음과 같다.
file://파일을 추가한 경로/sdcard/icon을 볼 수 있습니다.png을 불러옵니다. 물론 권한이 필요합니다.이렇게 하면 그림이 정확하게 불러올 수 있다.인터넷 사진은 말하지 않겠다. 전에 그 글에서 이미 언급되었다
즉, 지금까지는 정적 자원을 불러올 수 없었고 이것도 버그였다. 장래의 어떤 버전은 반드시 복구될 것이다. 임시적인 해결 방법은https://github.com/WoLfulus/react-native/commit/33e2d052b6e2e3e6b3595572abbc3cb9b66d5755node 열기modules\react-native\Libraries\Image\resolveAssetSource.js 파일,
function getScaledAssetPath(asset) {
var scale = pickScale(asset.scales, PixelRatio.get());
var scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';
var assetDir = getBasePath(asset);
return assetDir + '/' + asset.name + scaleSuffix + '.' + asset.type;
}
다음으로 수정
function getScaledAssetPath(asset) {
var scale = pickScale(asset.scales, PixelRatio.get());
var scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';
var assetDir = getBasePath(asset);
//return assetDir + '/' + asset.name + scaleSuffix + '.' + asset.type;
var imagePath = assetDir + '/' + asset.name + scaleSuffix + '.' + asset.type;
if (imagePath[0] == "/" || imagePath[0] == "\\") {
imagePath = imagePath.substr(1);
}
return imagePath;
}
이때 쓰세요.
정적 이미지 자원을 정상적으로 불러오고 표시할 수 있습니다.글을 쓸 때 React Native Android의 버전은 0.14.2이고 개발 환경은 win 7 X64로 머지않아 이런 문제들이 하나하나 복원될 것으로 믿는다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.