2013-03-04 102 views
1

如何獲得類似於在全屏查看圖像時在Facebook應用程序中看到的結果? (查看附件圖片如何隱藏部分佈局點擊/點擊

我使用Chris Banes的PhotoView Library來獲得多點觸控縮放功能。

但是我卻面臨着難以實現的工作。

我的XML:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/llMainContainer" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#000000" 
    android:orientation="vertical" > 

    <FrameLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center" > 

     <ImageView 
      android:id="@+id/imgvwImage" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center" 
      android:scaleType="fitXY" > 
     </ImageView> 

     <LinearLayout 
      android:id="@+id/linlaCaption" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="top|center" 
      android:layout_margin="4.0dip" 
      android:gravity="center" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/txtPhotoCaption" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:text="CAPTION" 
       android:textColor="#fff1f1f1" 
       android:textSize="16.0sp" 
       android:textStyle="bold" > 
      </TextView> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/linlaLikesAndComments" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|center" 
      android:gravity="center" 
      android:orientation="horizontal" > 

      <LinearLayout 
       android:id="@+id/linlaLikes" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1.0" 
       android:orientation="horizontal" > 

       <LinearLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_margin="2.0dip" 
        android:orientation="horizontal" > 

        <ImageButton 
         android:id="@+id/imgbtnLike" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:background="@null" 
         android:gravity="center" 
         android:orientation="vertical" 
         android:src="@drawable/photo_viewer_like" > 
        </ImageButton> 
       </LinearLayout> 

       <LinearLayout 
        android:id="@+id/linlaShowLikes" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_gravity="right|center" 
        android:layout_margin="2.0dip" 
        android:layout_weight="1.0" 
        android:orientation="horizontal" 
        android:padding="5.0dip" > 

        <TextView 
         android:id="@+id/txtLikesTotal" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:gravity="left|center" 
         android:text="20 LIKES" 
         android:textColor="#fff1f1f1" 
         android:textSize="12.0sp" 
         android:textStyle="bold" > 
        </TextView> 
       </LinearLayout> 
      </LinearLayout> 

      <LinearLayout 
       android:id="@+id/linlaComments" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1.0" 
       android:orientation="horizontal" > 

       <LinearLayout 
        android:id="@+id/linlaShowComments" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_gravity="right|center" 
        android:layout_margin="2.0dip" 
        android:layout_weight="1.0" 
        android:orientation="horizontal" 
        android:padding="5.0dip" > 

        <TextView 
         android:id="@+id/txtCommentsTotal" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:gravity="right|center" 
         android:text="20 COMMENTS" 
         android:textColor="#fff1f1f1" 
         android:textSize="12.0sp" 
         android:textStyle="bold" > 
        </TextView> 
       </LinearLayout> 

       <LinearLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_margin="2.0dip" 
        android:orientation="horizontal" > 

        <ImageButton 
         android:id="@+id/imgbtnComment" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:background="@null" 
         android:gravity="center" 
         android:orientation="vertical" 
         android:src="@drawable/photo_viewer_comment" > 
        </ImageButton> 
       </LinearLayout> 
      </LinearLayout> 
     </LinearLayout> 
    </FrameLayout> 

</FrameLayout> 

我所在的地方切換上點擊能見度我JAVA代碼:

FrameLayout llMainContainer = (FrameLayout) findViewById(R.id.llMainContainer); 
llMainContainer.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     if (linlaLikesAndComments.getVisibility() == View.GONE) { 
      linlaLikesAndComments.setVisibility(View.VISIBLE); 
     } else if (linlaLikesAndComments.getVisibility() == View.VISIBLE) { 
      linlaLikesAndComments.setVisibility(View.GONE); 
     } 
    } 
}); 

什麼我需要改變,以得到它的工作?

Before tapping the screen After tapping the screen

+1

究竟是不是工作?發生了什麼事 – 2013-03-04 10:07:14

+0

@StefandeBruijn:好吧,當我點擊父'FrameLayout'沒有任何反應。沒有錯誤。沒有。 – SSL 2013-03-04 10:08:17

+0

maby你需要選擇一個其他的視圖,嘗試像linearlayout或imageview – 2013-03-04 10:10:43

回答

0

我顯然錯過了樣本包括在OP中提到的圖書館。

它已經包含一個功能,顯示圖像的位置挖掘

我不確定它是否適用於其他任何不使用該庫的工具。

這是爲我做:

private class PhotoTapListener implements OnPhotoTapListener { 

    @Override 
    public void onPhotoTap(View view, float x, float y) { 
     if (linlaLikesAndComments.getVisibility() == View.GONE) { 
      linlaLikesAndComments.setVisibility(View.VISIBLE); 
     } else if (linlaLikesAndComments.getVisibility() == View.VISIBLE) { 
      linlaLikesAndComments.setVisibility(View.GONE); 
     } 
    } 
}