我在相对布局中有一个图像,在图像下方有一个线性布局。这张图片是透明的,所以看起来什么都没有。
我的代码向线性布局添加了 3 个文本视图。
我有它,所以当我在屏幕上移动手指时,它会放大图像的高度,从而给人一种线性布局已经在屏幕上向下移动的印象。
我想得到它,以便在触摸屏幕时,即使取景器静止,图像也会变大,看起来像图像在屏幕上向下移动。当手指移开时,图像停止放大。
我一直在尝试创建一个线程来运行 onTouchEvent 大约 2 周,但我的代码似乎使应用程序崩溃。
有人可以修改我的代码/添加此功能,以便我可以看到哪里出错了。我希望我只是没有将线程放在正确的位置,或者我没有正确停止线程,这导致它崩溃。
我的布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
android:id="@+id/LinearLayout"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/Spacer"
android:layout_width="100dp"
android:layout_height="100dp"
android:contentDescription="Spacer"
android:src="@drawable/ic_launcher" />
<LinearLayout
android:id="@+id/Letters"
android:orientation="horizontal"
android:layout_below="@id/Spacer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
</LinearLayout>
</RelativeLayout>
我的活动
package com.example.zz;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class MainActivity extends Activity {
protected int splashTime = 3000;
TextView tv1;
ImageView spacer;
String[] name = {"Hello","Rich","You","Hero"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] letters = {"A","B","C"};
String letter = "";
String nextLetters = "";
for( int i = 0; i < letters.length; i++)
{
letter = letters[i];
nextLetters = nextLetters + letter;
// Create a textView in code
LayoutParams paramsExample = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,1);
View linearLayout = findViewById(R.id.Letters);
TextView tv1 = new TextView(this);
tv1.setText(letter);
tv1.setLayoutParams(paramsExample);
tv1.setGravity(Gravity.CENTER);
((LinearLayout) linearLayout).addView(tv1);
}
}
@Override
public boolean onTouchEvent(MotionEvent e) {
switch (e.getAction()) {
case MotionEvent.ACTION_MOVE:
spacer = (ImageView) findViewById(R.id.Spacer);
RelativeLayout.LayoutParams head_params = (RelativeLayout.LayoutParams)spacer.getLayoutParams();
head_params.height = 400;
spacer.setLayoutParams(head_params);
}
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
我只是使用启动图标作为图像。
任何帮助都会减轻我的脱发,在此先感谢。