programing

리소스에서 비트맵을 설정하는 방법

sourcejob 2023. 8. 2. 09:01
반응형

리소스에서 비트맵을 설정하는 방법

이것은 간단한 것 같습니다. 비트맵 이미지를 설정하려고 하지만 리소스에서 그리기 가능한 폴더의 응용 프로그램 내에 있습니다.

bm = BitmapFactory.decodeResource(null, R.id.image);

이거 맞는건가요?

활동 클래스에서 이것을 호출한다고 가정합니다.

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);

첫 번째 매개 변수인 리소스가 필요합니다.일반적으로 모든 컨텍스트(및 활동과 같은 하위 클래스)에서 사용할 수 있습니다.

사용해 보세요.

이것은 sdcard에서 온 것입니다.

ImageView image = (ImageView) findViewById(R.id.test_image);
Bitmap bMap = BitmapFactory.decodeFile("/sdcard/test2.png");
image.setImageBitmap(bMap);

이것은 리소스에서 온 것입니다.

Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);

리소스가 표시되고 보기인 경우 리소스를 캡처할 수도 있습니다.스크린샷처럼:

View rootView = ((View) findViewById(R.id.yourView)).getRootView();
rootView.setDrawingCacheEnabled(true);
rootView.layout(0, 0, rootView.getWidth(), rootView.getHeight());
rootView.buildDrawingCache();

Bitmap bm = Bitmap.createBitmap(rootView.getDrawingCache());

rootView.setDrawingCacheEnabled(false);

이렇게 하면 실제로 전체 레이아웃이 표시되지만 원하는 대로 변경할 수 있습니다.

비트맵 개체를 선언하고 이 비트맵 개체를 표시하거나 저장하려면 먼저 이미지를 할당하고 버튼 클릭 이벤트를 사용할 수 있습니다. 이 코드는 그리기 가능한 이미지를 비트맵 개체에 저장하는 방법만 보여줍니다.

Bitmap contact_pic = BitmapFactory.decodeResource(
                           v.getContext().getResources(),
                           R.drawable.android_logo
                     );

이제 이 비트맵 개체를 사용하여 저장하거나, 고정 위도 및 경도로 그림을 그리는 동안 Google 지도에서 사용하거나, 다른 곳에서 사용할 수 있습니다.

이 라인을 교체하십시오.

bm = BitmapFactory.decodeResource(null, R.id.image);

와 함께

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.YourImageName);

내 말은 getResources()로 null 값을 변경하라는 것입니다. 버튼이나 이미지 보기 클릭 이벤트에서 이 코드를 사용하는 경우 getResources() 앞에 getApplicationContext()를 추가하십시오.

이 기능을 사용하면 이미지 비트맵을 얻을 수 있습니다.이미지 URL만 전달합니다.

 public Bitmap getBitmapFromURL(String strURL) {
      try {
        URL url = new URL(strURL);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;
      } catch (IOException e) {
        e.printStackTrace();
        return null;
      }
 }

언급URL : https://stackoverflow.com/questions/4955268/how-to-set-a-bitmap-from-resource

반응형