2016-07-11 2 views
0

Android 애플리케이션이 있습니다. 즉, 슬라이더가 잘 작동하고 공유 버튼도 올바르게 작동합니다.현재 Android에서 이미지를 공유하려면

그러나 공유 단추는 슬라이더 갤러리에 표시되는 현재 이미지 대신 (위에서 코딩 한 이후로) 슬라이더의 총 이미지 3 개 중 내가 설정 한 이미지 만 공유합니다. 사용자가 현재 이미지를 공유 할 수 있도록 현재 이미지로 공유 버튼 코드를 호출하기 만하면됩니다.

여기에 몇 가지 세부 사항이 있습니다. 3 ImageView for 3 slider for Image. 또한, 나는 ViewFlipper에서 다음을 촬영 한 :

이미지 1

 android:id="@+id/imageview1" 
     android:tag="bg1" 
     android:src="@drawable/image1 

이미지 2

 android:id="@+id/imageview2" 
     android:tag="bg2" 
     android:src="@drawable/image2 

이미지 3

 android:id="@+id/imageview3" 
     android:tag="bg3" 
     android:src="@drawable/image3 

지금까지, 나는

이 시도
Button btShare = (Button) findViewById(R.id.shareImage); 
    btShare.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      share(); 
     } 
    }); 

자, 여기에 현재 이미지가 필요한 share() 함수 코드 스 니펫이 있습니다. 이를 위해 setTag() 및 getTag()를 사용했지만 여전히 혼란 스럽습니다. 여기서는 3 가지 이미지의 태그를 모두 설정하여 가치를 얻을 수 있도록했습니다.

mImageView=(ImageView)findViewById(R.id.imageview1); 
    mImageView.setTag("bg1"); 

    mImageView=(ImageView)findViewById(R.id.imageview2); 
    mImageView.setTag("bg2"); 

    mImageView=(ImageView)findViewById(R.id.imageview3); 
    mImageView.setTag("bg3"); 

    String s = String.valueOf(mViewFlipper.getTag()); 

    Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show(); 

    if (s.equals("bg1"))/
    { 
     // now the code for share button starts, in that a folder gets 
     created in the Directory and a default name is given to the 
     image which gets saved there, like 

     File f = new File(dir, "savedImage1.png"); 

나는 확실하지 않다 (내가하고 싶지 않아 그 중 하나)에 대한 위의 경우 - 다른 사람도, "만일"모든 이미지를 만드는 데 좋지 않다, 그래서 대체를 필요로하기 때문에 배열과 같음) 등으로 현재 드로어 블 이미지를 처리 ​​할 수 ​​있습니다.

위의 String에서 임의의 이미지를 선택할 때 "null"이 반환됩니다 (Toast를 적용하여 체크하고 모든 경우에 null을 표시 함).

bg1 (이미지 1의 경우) 또는 bg2 (이미지 2의 경우) 또는 bg3 (이미지 3의 경우)을 String s의 현재 이미지로 가져 오면 코드를 쉽게 실행할 수 있습니다. 슬라이더 갤러리에 나타나면 특정 이미지 만.

답변

2

라인 : String s = String.valueOf(mViewFlipper.getTag());

당신은 ViewFlipper의 태그가 아닌 표시된 이미지를 읽기 위해 노력하고 있습니다.

flipper.getDisplayedChild();을 사용하면 표시된 ImageView를 검색하고 태그를 읽을 수 있습니다.

또한 표시 할 파일 이름의 배열을 준비한 다음 flipper.indexOfChild(flipper.getCurrentView())을 사용하여 표시된 이미지의 색인을 검색하는 것이 좋습니다.

그러면이 색인을 사용하여 파일 이름 배열에 접근 할 수 있으며 이미지 공유 논리를 한 번만 쓸 수 있습니다.

+0

감사합니다. @Axarydax. 나는 flipper.getDisplayedChild()를 이해했습니다. 그것은 완벽하게 작동했습니다. –

+0

그러나 BITMAP을 한 번 호출해야하므로 배열을 작성하고 그 값을 얻는 방법에 대해서는 여전히 혼란 스럽습니다. 나는 다음과 같이 따로하고 싶지 않다는 것을 의미한다. bitmap = BitmapFactory.decodeResource (getResources(), R.drawable.image1); 이미지 1 등 –

+0

@AmanChawla 활동에 이미지 ID의 int [] 배열을 정의하고 R.drawable.image1, R.drawable.image2 등의 값을 가질 수 있습니다. ViewFlipper에서와 같은 순서를 유지한다면 배열의 인덱스로'indexOfChild'를 사용하여 이미지 ID를 얻을 수 있습니다. – Axarydax

관련 문제