如何在点击/单击时隐藏部分布局

时间:2013-03-04 10:04:44

标签: android visibility android-imageview

在全屏查看图像时,如何获得与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 个答案:

答案 0 :(得分: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);
        }
    }
}