Chart.java
public class Chart extends VLinearLayout implements BaseView{
private Activity context;
private ImageView m_ImageView;
private Bitmap img;
private int ScaleAngle = 0;
private Button turnLeft,turnRight;
private HLinearLayout B_LinearLayout;
private int[] WindowXY = new int[2];
public Chart(Activity context) {
super(context);
this.context = context;
m_ImageView = new ImageView(context);
DisplayMetrics dm = new DisplayMetrics();
context.getWindowManager().getDefaultDisplay().getMetrics(dm);
WindowXY[0] = dm.widthPixels;
WindowXY[1] = dm.heightPixels;
B_LinearLayout = new HLinearLayout(context);
turnLeft = new Button(context);
turnLeft.setText("左转");
turnRight = new Button(context);
turnRight.setText("右转");
turnLeft.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {turnLeft();}
});
turnRight.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {turnRight();}
});
B_LinearLayout.addView(turnLeft);
turnLeft.setPadding(10, 5, 10, 5);
B_LinearLayout.addView(turnRight);
turnRight.setPadding(10, 5, 10, 5);
this.addView(B_LinearLayout);
this.addView(m_ImageView, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));
}
public void turnLeft(){
ScaleAngle--;
int bmpWidth = img.getWidth();
int bmpHeight = img.getHeight();
Matrix matrix = new Matrix();
matrix.setRotate( 90 * ScaleAngle);
Bitmap newBit = Bitmap.createBitmap(img, 0, 0, bmpWidth, bmpHeight, matrix, true);
m_ImageView.setImageBitmap(newBit);
}
public void turnRight(){
ScaleAngle++;
int bmpWidth = img.getWidth();
int bmpHeight = img.getHeight();
Matrix matrix = new Matrix();
matrix.setRotate( 90 * ScaleAngle);
Bitmap newBit = Bitmap.createBitmap(img, 0, 0, bmpWidth, bmpHeight, matrix, true);
m_ImageView.setImageBitmap(newBit);
}
public void setImage(String param){
if (param == null || param.equals("")){
Log.v("default", "image");
try {
img = BitmapFactory.decodeStream(context.getResources().getAssets().open("test.png"));
} catch (IOException e) {
Log.e("读取Assets下图片资源失败!", e.getMessage(), e);
}
}else{
if (param.startsWith("/")) {
img = BitmapFactory.decodeStream(ImageUtil.class.getResourceAsStream(param));
} else if (param.startsWith("res-img:")) {
try {
img = BitmapFactory.decodeStream(context.getResources().getAssets().open(param.substring(8)));
} catch (IOException e) {
Log.e("读取Assets下图片资源失败!", e.getMessage(), e);
}
} else if (param.startsWith("stream:")) {
String s = param.substring(7);
img = BitmapFactory.decodeStream(new java.io.ByteArrayInputStream(StringUtil.fromBase64(s)));
}
}
int bmpWidth = img.getWidth();
int bmpHeight = img.getHeight();
Log.v("base", bmpWidth+"");
Log.v("base", bmpHeight+"");
if(bmpWidth < WindowXY[0] && bmpHeight < WindowXY[1]){
Matrix matrix = new Matrix();
float one = (float)WindowXY[0]/bmpWidth;
float two = (float)WindowXY[1]/bmpHeight;
Log.v("one", one+"");
Log.v("two", two+"");
if(one < two){
Log.v("one", one+"");
matrix.postScale(one, one);
}else{
Log.v("two", two+"");
matrix.postScale(two, two);
}
img = Bitmap.createBitmap(img, 0, 0, bmpWidth, bmpHeight, matrix, true);
}
m_ImageView.setImageBitmap(img);
}
@Override
public String getValue() {
return null;
}
@Override
public void setValue(String text) {
}
@Override
public View getView() {
return this;
}
}
分享到:
相关推荐
width=100%就可以使得图片宽度充满屏幕,高度自适应
Android ImageView 宽度设定,高度按比例缩放
Java源码,Android源码,ImageView Android安卓ImageView ui组件库,并附有相关的测试代码,对ImageView不太熟悉的,不妨参考下,很简单,库代码完整。
ImageView 圆环旋转+仿微信底部TabHost+fragment
在imageview上的指定位置添加另一个iamgeview,并实现等比例缩放,图片自适应
android自定义ImageView实现旋转动画
当宽度一定时,如满屏,高度自适应 Android代码 继承自imageView
可手势缩放平移及旋转的ImageView。可以直接拿来用。参看博客http://blog.csdn.net/BigBoySunshine/article/details/78256008
Android用线程实现ImageView图片变换+可以停止和继续
实现了ImageView的放大缩小和旋转功能。
可以旋转的ImageView
Android ImageView圆角图片 + 剪切,图像图片更改,调用图库实现图片剪切,剪切后生成圆角图片
android 动态旋转图片 Bitmap与Matrix旋转ImageView
1.在listView中,当点击ImageView时,EditText+1,当点击mageView1时,EditText-1。
ImageView图像处理功能实现+文件加解密
Android 自定义MutiTouchImageView (移动、缩放、旋转)
LinearLayout+RelativeLayout+Imageview+Textview实现底部导航栏效果
自己做的一个点击imageview加边框和仿京东分类页面,里面还有自定义圆角,纯圆imageview。
让android程序根据重力感应旋转屏幕支持4个方向旋转。 原创如需转载请注明出处。有什么不好的地方也请指正。