小弟在开发时遇到的问题,在FrameLayout中有ImageView加载了资源图片,然后动态的在上面添加了文字。当图片大小发生变化时,文字的位置没有变化,我想达到文字始终位于图片左上角的效果,该如何实现啊?求解
图片不会传,把主要的代码放上来
package com.example;import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.*;public class ImageZoom extends Activity implements View.OnClickListener
{
FrameLayout layout;
Bitmap bitmap;
ImageView imageView;
Matrix matrix;
float scale=1;
int widthOrg;
int heightOrg;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.test)).getBitmap();
widthOrg = bitmap.getWidth();
heightOrg = bitmap.getHeight();
imageView = (ImageView) findViewById(R.id.imageview);
imageView.setImageBitmap(bitmap); layout = (FrameLayout) findViewById(R.id.layout);
TextView textView = new TextView(this);
textView.setTextColor(Color.GREEN);
textView.setText("测试测试测试测试测试测试");
layout.addView(textView); matrix = new Matrix();
matrix.postScale(scale,scale); Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
} public void onClick(View view) {
scale =0.1f;
matrix.reset();
matrix.postScale(scale, scale);
Bitmap newMap = Bitmap.createBitmap(bitmap, 0, 0, widthOrg, heightOrg, matrix, true);
BitmapDrawable bmd = new BitmapDrawable(newMap);
layout.removeView(imageView);
ImageView imageView = new ImageView(this);
imageView.setImageDrawable(bmd);
imageView.setScaleType(ImageView.ScaleType.CENTER);
layout.addView(imageView,
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT
)
); }
}
图片不会传,把主要的代码放上来
package com.example;import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.*;public class ImageZoom extends Activity implements View.OnClickListener
{
FrameLayout layout;
Bitmap bitmap;
ImageView imageView;
Matrix matrix;
float scale=1;
int widthOrg;
int heightOrg;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.test)).getBitmap();
widthOrg = bitmap.getWidth();
heightOrg = bitmap.getHeight();
imageView = (ImageView) findViewById(R.id.imageview);
imageView.setImageBitmap(bitmap); layout = (FrameLayout) findViewById(R.id.layout);
TextView textView = new TextView(this);
textView.setTextColor(Color.GREEN);
textView.setText("测试测试测试测试测试测试");
layout.addView(textView); matrix = new Matrix();
matrix.postScale(scale,scale); Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
} public void onClick(View view) {
scale =0.1f;
matrix.reset();
matrix.postScale(scale, scale);
Bitmap newMap = Bitmap.createBitmap(bitmap, 0, 0, widthOrg, heightOrg, matrix, true);
BitmapDrawable bmd = new BitmapDrawable(newMap);
layout.removeView(imageView);
ImageView imageView = new ImageView(this);
imageView.setImageDrawable(bmd);
imageView.setScaleType(ImageView.ScaleType.CENTER);
layout.addView(imageView,
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT
)
); }
}
既然lz可以动态改变文字那就同时也setHeight(),setWidth()这2个值根据imageView缩放比例去计算