Hello Stackoverflow friendo。我只是想知道是否有人可以帮助我。
我创建了一个包含大量图片的应用程序,图片目前非常小,但我希望它们在点击后展开。有没有办法做到这一点? 我的应用程序大约持有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);
}
});
}
}
答案 0 :(得分:9)
Google很好地解释了How to enlarge view on a touch。您也可以使用相同的技术进行图像查看。 检查给定链接以获取完整的示例代码。
答案 1 :(得分:1)
假设你有一个带有gridview的片段来保存你的图像,只需将onItemClickListener附加到它们上,当有人点击图像时,获取ID并将其传递回活动,该活动将从使用它的位置获取图像id并使用单个ImageView设置一个新片段;这样做。
修改强>
第二次看完你的问题之后,我想你可能不得不改变你的方式(真的取决于你)
有两个数组分别存储较小的图像和较大的图像版本。
现在,使用片段或仅使用带有gridview的常规视图来显示所有图像,然后实现单击侦听器以跟踪使用position参数单击的图像。
在知道单击了哪个图像后,只需将位置传回活动,然后使用该位置从第二个较大图像阵列加载较大的图像,并将其分别显示在具有预设尺寸/宽度/高度的图像视图中。
我认为这有助于解决您的问题。
注意为了传回所点击图片的位置,如果您使用片段(然后在您的活动中实现它),您只需要片段中的接口,否则,您可以从活动中获取位置并在那里完成下一个任务。