【问题标题】:Enlarging an Imageview on click单击时放大图像视图
【发布时间】:2014-03-14 15:53:33
【问题描述】:

你好 Stackoverflow 朋友的。我只是想知道是否有人可以帮助我。

我创建了一个包含大量图像的应用程序,这些图像目前非常小,但我希望它们在被点击后展开。有没有办法做到这一点? 我的应用程序包含大约 50 个 xml,并且类中的内容相同。但是它包含大约 100 张图片,有什么简单的方法可以做到这一点吗?

我的 XML 示例

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:background="#808080"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="499dp"
        android:orientation="vertical" >

 <ImageView
     android:id="@+id/Logo"
     android:layout_width="120dp"
     android:layout_height="wrap_content"
     android:layout_marginLeft="255dp"
     android:layout_marginTop="3dp"
     android:src="@drawable/logov2" />


            <TextView
                android:id="@+id/title"
                android:layout_width="210dp"
                android:layout_height="84dp"
                android:layout_marginLeft="40dp"
                android:layout_marginTop="-90dp"
                android:gravity="center"
                android:text="@string/seatedcablerows"
                android:textColor="#FFFFFF"
                android:textSize="32sp" />

            <ImageView
                android:id="@+id/blackline"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:src="@drawable/blackline" />

               <TextView
                   android:id="@+id/textView1"
                   android:layout_width="95dp"
                   android:layout_height="wrap_content"
                   android:layout_marginTop="3dp"
                   android:layout_marginLeft="15dp"
                   android:text="@string/startphase"
                   android:textAppearance="?android:attr/textAppearanceSmall"
                   android:textColor="#ffffff"
                   android:textSize="16sp" />

                  <TextView
                      android:id="@+id/textView2"
                      android:layout_width="121dp"
                      android:layout_height="wrap_content"
                      android:layout_marginLeft="130dp"
                      android:layout_marginTop="-20dp"
                      android:text="@string/middlephase"
                      android:textAppearance="?android:attr/textAppearanceSmall"
                      android:textColor="#ffffff"
                      android:textSize="16sp" />

      <TextView
                   android:id="@+id/textView3"
                   android:layout_width="95dp"
                   android:layout_height="wrap_content"
                   android:layout_marginTop="-20dp"
                   android:layout_marginLeft="260dp"
                   android:text="@string/endphase"
                   android:textAppearance="?android:attr/textAppearanceSmall"
                   android:textColor="#ffffff"
                   android:textSize="16sp" />
            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="97dp"
                android:layout_height="100dp"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="5dp"
                android:src="@drawable/seatedcablerowstart" />

            <ImageView
                android:id="@+id/imageView2"
                 android:layout_width="97dp"
                android:layout_height="100dp"
                android:layout_marginLeft="130dp"
                android:layout_marginTop="-100dp"
                android:src="@drawable/seatedcablerowmid" />

            <ImageView
                android:id="@+id/imageView3"
                 android:layout_width="97dp"
                android:layout_height="100dp"
                android:layout_marginLeft="245dp"
                android:layout_marginTop="-100dp"
                android:src="@drawable/seatedcablerowend" />

            <ImageView
                android:id="@+id/blackline2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:src="@drawable/blackline" />

            <TextView
                android:id="@+id/seatedcablerowsdesc"
                android:layout_width="match_parent"
                android:layout_height="41dp"
                android:layout_marginTop="3dp"
                android:gravity="center"
                android:text="@string/seatedcablerowsdesc"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="#ffffff"
                android:textSize="16sp" />

                 <TextView
                     android:id="@+id/seatedcablerowsperf"
                     android:layout_width="match_parent"
                     android:layout_height="238dp"
                     android:layout_marginTop="3dp"
                     android:gravity="center"
                     android:text="@string/seatedcablerowsperf"
                     android:textAppearance="?android:attr/textAppearanceSmall"
                     android:textColor="#FFFFFF"
                     android:textSize="14sp" />

                 <TextView
                     android:id="@+id/seatedcablerowscaut"
                     android:layout_width="match_parent"
                     android:layout_height="64dp"
                     android:layout_marginTop="3dp"
                     android:gravity="center"
                     android:text="@string/seatedcablerowscaut"
                     android:textAppearance="?android:attr/textAppearanceSmall"
                     android:textColor="#FFFFFF"
                     android:textSize="14sp" />

                 <ImageView
                      android:id="@+id/blackline3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:src="@drawable/blackline" />

                                                            <!--Set 1 starts here  -->
                 <TextView
                     android:id="@+id/set1"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:text="@string/set1"
                     android:textColor="#FFFF00"
                     android:textSize="25sp" />

                   <TextView
                     android:id="@+id/weight"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="-30dp"
                     android:layout_marginLeft="100dp"
                     android:text="@string/weight"
                     android:textColor="#FFFF00"
                     android:textSize="16sp" 
                     />

                     <TextView
                         android:id="@+id/repititions"
                         android:layout_width="116dp"
                         android:layout_height="wrap_content"
                         android:layout_marginLeft="240dp"
                         android:layout_marginTop="-20dp"
                         android:text="@string/repetitions"
                         android:textColor="#FFFF00"
                         android:textSize="16sp" />

                 <EditText
                     android:id="@+id/editText1"
                     android:layout_width="67dp"
                     android:layout_height="36dp"
                     android:layout_marginLeft="100dp"
                     android:layout_marginTop="5dp"
                     android:background="#FFFFFF"
                     android:ems="10"
                     android:inputType="number"
                      >

              </EditText>

                 <EditText
                     android:id="@+id/editText2"
                     android:layout_width="67dp"
                     android:layout_height="36dp"
                     android:layout_marginLeft="240dp"
                     android:layout_marginTop="-37dp"
                     android:background="#FFFFFF"
                     android:ems="10"
                     android:inputType="number" >

                </EditText>
                 <ImageView
                     android:id="@+id/imageView4"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:src="@drawable/blackline2" />
                                                                <!--Set 2 starts here  -->
                   <TextView
                     android:id="@+id/set2"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:text="@string/set2"
                     android:textColor="#FFFF00"
                     android:textSize="25sp" 
                     />
                   <TextView
                     android:id="@+id/weight1"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="-30dp"
                     android:layout_marginLeft="100dp"
                     android:text="@string/weight"
                     android:textColor="#FFFF00"
                     android:textSize="16sp" 
                     />
                      <TextView
                         android:id="@+id/repititions2"
                         android:layout_width="116dp"
                         android:layout_height="wrap_content"
                         android:layout_marginLeft="240dp"
                         android:layout_marginTop="-20dp"
                         android:text="@string/repetitions"
                         android:textColor="#FFFF00"
                         android:textSize="16sp" />
                            <EditText
                     android:id="@+id/editText3"
                     android:layout_width="67dp"
                     android:layout_height="36dp"
                     android:layout_marginLeft="100dp"
                     android:layout_marginTop="5dp"
                     android:background="#FFFFFF"
                     android:ems="10"
                     android:inputType="number" >
                     </EditText>
                        <EditText
                     android:id="@+id/editText4"
                     android:layout_width="67dp"
                     android:layout_height="36dp"
                     android:layout_marginLeft="240dp"
                     android:layout_marginTop="-37dp"
                     android:background="#FFFFFF"
                     android:ems="10"
                     android:inputType="number" >

                </EditText>

                   <ImageView
                       android:id="@+id/imageView5"
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:src="@drawable/blackline2" />
                                                                        <!--Set 3 starts here  -->
                     <TextView
                     android:id="@+id/set3"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:text="@string/set3"
                     android:textColor="#FFFF00"
                     android:textSize="25sp" 
                     />
                   <TextView
                     android:id="@+id/weight3"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="-30dp"
                     android:layout_marginLeft="100dp"
                     android:text="@string/weight"
                     android:textColor="#FFFF00"
                     android:textSize="16sp" 
                     />
                      <TextView
                         android:id="@+id/repititions3"
                         android:layout_width="116dp"
                         android:layout_height="wrap_content"
                         android:layout_marginLeft="240dp"
                         android:layout_marginTop="-20dp"
                         android:text="@string/repetitions"
                         android:textColor="#FFFF00"
                         android:textSize="16sp" />
                            <EditText
                     android:id="@+id/editText5"
                     android:layout_width="67dp"
                     android:layout_height="36dp"
                     android:layout_marginLeft="100dp"
                     android:layout_marginTop="5dp"
                     android:background="#FFFFFF"
                     android:ems="10"
                     android:inputType="number" >
                     </EditText>
                        <EditText
                     android:id="@+id/editText6"
                     android:layout_width="67dp"
                     android:layout_height="36dp"
                     android:layout_marginLeft="240dp"
                     android:layout_marginTop="-37dp"
                     android:background="#FFFFFF"
                     android:ems="10"
                     android:inputType="number" >
 </EditText>
                     <ImageView
                         android:id="@+id/imageView6"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:src="@drawable/blackline2" />
                                                                     <!--Set 4 starts here  -->

                          <TextView
                     android:id="@+id/set4"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:text="@string/set4"
                     android:textColor="#FFFF00"
                     android:textSize="25sp" 
                     />
                   <TextView
                     android:id="@+id/weight4"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="-30dp"
                     android:layout_marginLeft="100dp"
                     android:text="@string/weight"
                     android:textColor="#FFFF00"
                     android:textSize="16sp" 
                     />
                      <TextView
                         android:id="@+id/repititions4"
                         android:layout_width="116dp"
                         android:layout_height="wrap_content"
                         android:layout_marginLeft="240dp"
                         android:layout_marginTop="-20dp"
                         android:text="@string/repetitions"
                         android:textColor="#FFFF00"
                         android:textSize="16sp" />
                            <EditText
                     android:id="@+id/editText7"
                     android:layout_width="67dp"
                     android:layout_height="36dp"
                     android:layout_marginLeft="100dp"
                     android:layout_marginTop="5dp"
                     android:background="#FFFFFF"
                     android:ems="10"
                     android:inputType="number" >
                     </EditText>
                        <EditText
                     android:id="@+id/editText8"
                     android:layout_width="67dp"
                     android:layout_height="36dp"
                     android:layout_marginLeft="240dp"
                     android:layout_marginTop="-37dp"
                     android:background="#FFFFFF"
                     android:ems="10"
                     android:inputType="number" >
 </EditText>

                                  <ImageButton
                            android:id="@+id/imageButton1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="240dp"
                            android:layout_marginTop="35dp"
                            android:src="@drawable/savebutton"
                             android:background="@null" />

                        <ImageButton
                            android:id="@+id/QR"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="-10dp"
                            android:layout_marginBottom="-60dp"
                            android:src="@drawable/qrscanner" />

</LinearLayout>
</ScrollView>

Java 类:

package com.example.workplease;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;

import com.example.workplease_v2.R;

public class Seatedcablerows extends Activity {
ImageButton imagebutton;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.seatedcablerows);

        AddListenerOnButton();
}

public void AddListenerOnButton(){
    final Context context = this;

    imagebutton = (ImageButton) findViewById(R.id.QR);

    imagebutton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

            Intent intent = new Intent(context, Qrscanner.class);
                        startActivity(intent);  
        }
    });
}
}

【问题讨论】:

    标签: android eclipse android-imageview android-image


    【解决方案1】:

    Google 已经很好地解释了How to enlarge view on a touch。您也可以对图像视图使用相同的技术。 检查给定的链接以获取完整的示例代码。

    【讨论】:

    • 是的,我刚刚也发现了这个,谢谢@Pratap Singh,我需要创建大约 100 个类来存储图像的所有 java 吗?我对 Java 有点陌生...
    • 为什么是 100 节课..?只需创建一个具有缩放功能的类并将其用于所有人。
    【解决方案2】:

    假设您有一个带有 gridview 的片段来保存您的图像,只需将 onItemClickListener 附加到它们,当有人单击图像时,获取 ID 并将其传递回活动,该活动将从使用它所在的位置获取图像id 并使用单个 ImageView 设置新片段;这样就可以了。

    编辑

    第二次阅读您的问题后,我认为您可能需要改变您的处理方式(取决于您)

    有两个数组分别存储较小的图像和较大的图像版本。

    现在,使用一个片段或只是一个带有网格视图的常规视图来显示您的所有图像,然后实现一个点击侦听器以使用位置参数跟踪哪个图像被点击。

    知道点击了哪张图片后,只需将位置传回给活动,并使用该位置从第二个较大图像数组中加载较大的图像,并分别以预设尺寸/宽度/高度将其显示在图像视图中。

    我认为这将有助于解决您的问题。

    注意为了传回被点击图片的位置,如果你使用一个片段,你只需要一个片段中的接口(然后在你的活动中实现它),否则,你可以只从活动中获取位置并在那里执行下一个任务。

    【讨论】:

    • 我既没有使用 gridview 也没有使用 Fragments 来保存图像,您知道任何其他可能扩展图像的方法吗? @Eenvincible
    • 扩展图像将涉及缩放它们,这可能会弄乱分辨率;但是,您可以在原始视图中将它们的尺寸设置为小于真实图像,然后放大它们,根据需要设置它们的宽度和高度以放大它们;您可以在对话框中显示图像,也可以在片段中显示它自己的 ImageView。
    • 我真的不想改变一切。如果我将所有图像视图更改为按钮,您认为会好吗?并按照此处找到的方法进行操作? developer.android.com/training/animation/zoom.html#views@Eenvincible
    猜你喜欢
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    相关资源
    最近更新 更多