Muszę otworzyć zamiar wyświetlenia obrazu w następujący sposób:
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("@drawable/sample_1.jpg");
intent.setData(uri);
startActivity(intent);
Problem w tym, że Uri uri = Uri.parse("@drawable/sample_1.jpg");
to nieprawda.
Oto przejrzyste rozwiązanie, które w pełni wykorzystuje
android.net.Uri
klasę poprzez jejBuilder
wzorzec, unikając powtarzającego się składu i dekompozycji łańcucha URI, bez polegania na ciągach zakodowanych na stałe lub ad hoc pomysłów dotyczących składni URI.źródło
źródło
Dla tych, którzy mają błąd, być może wprowadzasz niewłaściwą nazwę pakietu. Po prostu użyj tej metody.
Gdzie
źródło
Potrzebujesz identyfikatora URI zasobu obrazu i
R.drawable.goomb
jest to zasób obrazu. Funkcja Builder tworzy identyfikator URI, o który prosisz:źródło
W oparciu o powyższe odpowiedzi chcę podzielić się przykładem kotlin pokazującym, jak uzyskać prawidłowy Uri dla dowolnego zasobu w Twoim projekcie. Myślę, że to najlepsze rozwiązanie, ponieważ nie musisz wpisywać żadnych ciągów w swoim kodzie i ryzykujesz wpisanie go nieprawidłowo.
źródło