import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ZoomControls;
public class ZoomControlsImageView extends Activity {
private ImageView imageView;
private ZoomControls zoomControls;
private LinearLayout layout1;
private int id = 0;
private int displayWidth;
private int displayHeight;
private int imageWidth;
private int imageHeight;
private float scaleWidth = 1;
private float scaleHeight = 1;
private Bitmap bmp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.zoomcontrols_imageview);
layout1 = (LinearLayout)findViewById(R.id.layout1);
/**取得屏幕的分辨率**/
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
displayWidth = dm.widthPixels;
displayHeight = dm.heightPixels;
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.han);
imageWidth = bmp.getWidth();
imageHeight = bmp.getHeight();
imageView = (ImageView)findViewById(R.id.imageView);
zoomControls =(ZoomControls) findViewById(R.id.zoomControls1);
zoomControls.setIsZoomInEnabled(true);
zoomControls.setIsZoomOutEnabled(true);
/**图片放大**/
zoomControls.setOnZoomInClickListener(new ZoomControls.OnClickListener(){
public void onClick(View v) {
zoomControls.setIsZoomOutEnabled(true);
int bmpWidth = bmp.getWidth();
int bmpHeight = bmp.getHeight();
// 设置图片的放大比例
double scale = 1.25;
/**计算这次要放大的比例**/
scaleWidth = (float)(scaleWidth*scale);
scaleHeight = (float)(scaleHeight*scale);
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp = Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight,matrix,false);
if(resizeBmp.getHeight() >= displayHeight ){
zoomControls.setIsZoomInEnabled(false);
}
imageView.setImageBitmap(resizeBmp);
}});
/**图片的缩小**/
zoomControls.setOnZoomOutClickListener(new ZoomControls.OnClickListener(){
public void onClick(View v) {
zoomControls.setIsZoomInEnabled(true);
int bmpWidth = bmp.getWidth();
int bmpHeight = bmp.getHeight();
double scale = 0.8;1 scaleWidth = (float)(scaleWidth*scale);
scaleHeight = (float)(scaleHeight*scale);
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp = Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight,matrix,true);
if(resizeBmp.getHeight() <= imageHeight){
zoomControls.setIsZoomOutEnabled(false);
}
imageView.setImageBitmap(resizeBmp);
}});
}
}
分享到:
相关推荐
ZoomControls控件是一个可以缩放的控件,以下是它但一些主要但方法 hasFocus ():判断焦点 hide ():隐藏 onTouchEvent (MotionEvent event):现这个方法来处理触摸屏移动事件 setIsZoomInEnabled (boolean is...
在智能家居系统中,缩放控件ZoomControls是一个重要的交互元素,它主要用于调整用户界面中的视图大小,使得用户能够更方便地查看和操作内容。在本文中,我们将深入探讨ZoomControls的功能特性、类继承结构、属性方法...
如何使用ZoomControls控件实现布局/字体的缩放 一般应用开发过程中,会在屏幕的右下角有两个缩放控件(缩小和放大),这个控件就是ZoomControls 如何使用其实现放大缩小功能: 1:首先在布局文件中配置...
//图片缩小 zoomcontrols.setOnZoomOutClickListener(new OnClickListener() { public void onClick(View v) { int bmpWidth = bitmap.getWidth(); int bmpHeight = bitmap.getHeight(); //设置图片缩小但比例 ...
移动互联网应用
ZoomControls zoomControls = new ZoomControls(this); zoomControls.setOnZoomInClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mapView.zoomIn(); } }); zoomControls....
在这个项目中,我们可能会看到`ZoomControls`类的实现,这是一个预定义的Android控件,用于提供简单的放大和缩小功能。`ZoomControls`通常用于地图应用或其他需要用户进行缩放操作的场景。 源码分析: 1. **...
4. ZoomControls控件。 ImageView/ImageButton控件属于非常简单的控件,我们就从这两个入手开始。剩余的控件和手机等移动设备关系比较紧密,我们随后看看基于移动设备有什么新特性的控件。本集的口号是“我的面子我...
这篇教程主要涵盖了九种常见的Android控件及其使用示例,包括ZoomControls、Include、VideoView、WebView、RatingBar、Tab、Spinner、Chronometer以及ScrollView。下面我们将逐一详细探讨这些控件的功能和用法。 1....
((View) zoomControls).setVisibility(View.GONE); } } catch (NoSuchFieldException | IllegalAccessException e) { Log.e("WebView", "Error accessing zoom controls", e); } ``` 3. **处理版本兼容性**:在...
在这个项目中,`ZoomControls`可能是自定义的一个类,用于实现放大镜的控制逻辑。 1. **放大与缩小**:在Android中,可以使用`ScaleGestureDetector`来检测用户的双指缩放手势,从而实现图像的放大和缩小。当用户在...
21. ZoomControls:用于视频播放时的缩放控制。 22. AnalogClock和DigitalClock:分别显示模拟时钟和数字时钟。 这些UI类根据它们在Android框架中的位置和它们的继承关系组织成一个树形结构图。了解这个结构有助于...
- 缩放控制:可以使用自定义组件或Android提供的`ZoomControls`组件来控制地图的缩放。通过调用`MapView`的相关方法可以实现地图的放大和缩小。 - 地图模式:`MapView`支持卫星视图、街景模式等多种显示模式,可以...
6. `zoomControls`:设置缩放和平移控件。 7. `mapProvider`:指定地图提供者,如Google Maps、Bing Maps等。 在“广东地图”这个项目中,XML配置文件可能详细列出了广东省内各个城市的边界坐标,以及对应的交互...
- **ZoomControls**:缩放控制器视图,用于控制缩放操作。 #### XML属性 下面是一些常用的`View`类的XML属性及其描述: - **android:background**:设置背景色或背景图片。可以通过以下方式设置背景为透明:“@...
接着,获取`MapView`的`ZoomControls`并添加到布局中,让用户可以方便地缩放地图。`mapController.setZoom(15);`设置地图的初始缩放级别为15,这意味着地图会被放大到一个特定的级别,用户可以看到更详细的地图细节...
- **ZoomControls**:提供缩放功能的控件。 ##### 4.3.18 Include - **Include**:用于重复利用的布局。 ##### 4.3.19 VideoView - **VideoView**:用于播放视频。 ##### 4.3.20 WebView - **WebView**:用于...
开发者也可以通过设置ZoomControls或者使用GestureDetector监听用户手势来实现程序控制的地图缩放和平移。 3. **位置查询**:Android提供了Geocoder类用于地址解析,可以将地理坐标(经纬度)转换为人类可读的地址...
17. **ZoomControls:zmCtrl** 18. **Include:ind** 19. **VideoView:vdoVi** 20. **WebView:webView** 21. **RatingBar:ratBar** 22. **Tab:tab** 23. **Spinner:spn** 24. **Chronometer:Cmt** 25. **...