本人被这个问题折磨一天了,求教各位大神。
“左右滑动查看图片”不是查看多张图片,而是查看一张大图,具体效果是一张分辨率很高的图片刚开始时页面只能显示图片的一部分,用户左右滑动界面能够查看尚未显示的图片部分。
上网查了好久,发现上面大多是一些viewpager方面的东西,不需要查看多张图片的例子,谢谢
求大神指点呐
“左右滑动查看图片”不是查看多张图片,而是查看一张大图,具体效果是一张分辨率很高的图片刚开始时页面只能显示图片的一部分,用户左右滑动界面能够查看尚未显示的图片部分。
上网查了好久,发现上面大多是一些viewpager方面的东西,不需要查看多张图片的例子,谢谢
求大神指点呐
解决方案 »
- 怎么在只知道一个activity的name的情况下,打开这个activity?
- EGLContext的怪问题
- 为什么一个AVD配置出来的两个系统同时运行会很卡
- ethernet状态栏图标的显示,notification,notificationmanager
- android的几个简单问题
- android如何点击按钮返回home???
- Android 怎么用代码控制自动点击屏幕某位置
- Android查询数据库问题
- BroadcastReceiver提示AlertDialog会导致apk奔溃
- 请问一下这种图是用什么软件画的?
- 求 Android GridView布局的日历 Demo
- 关于notification 的问题--怎么保留activity的状态
http://zhixinzhinian.blog.163.com/blog/static/19952332720126303243724/
{
private ImageView image1;
private Bitmap bm;
private int bmWidth=0;
private int bmHeight=0;
private int width=0;
private int height=0;
private int pointX=0;
private int pointY=0;
private GestureDetector detector;
private myGestureListener gListener;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
/* 隐藏状态栏 */
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
/* 隐藏标题栏 */
requestWindowFeature(Window.FEATURE_NO_TITLE);
/* 载丈main.xml Layout */
setContentView(R.layout.main);
/* 取得屏幕宽高 */
width=this.getWindowManager().getDefaultDisplay().getWidth();
height=this.getWindowManager().getDefaultDisplay().getHeight();
/* Bitmap设定 */
bm=BitmapFactory.decodeResource(getResources(),R.drawable.photo);
bmWidth=bm.getWidth();
bmHeight=bm.getHeight();
/* ImageView初始化 */
image1=(ImageView)findViewById(R.id.image1);
Bitmap newB=Bitmap.createBitmap(bm,pointX,pointY, width, height);
image1.setImageBitmap(newB);
/* GestureDetector设置 */
gListener = new myGestureListener();
detector = new GestureDetector(EX07_19.this,gListener);
}
/* 当Activity的onTouchEvent()被触发时,
* 触发GestureDetector的onTouchEvent() */
@Override
public boolean onTouchEvent(MotionEvent event)
{
if (detector.onTouchEvent(event))
{
return detector.onTouchEvent(event);
}
else
{
return super.onTouchEvent(event);
}
}
/* 自定义GestureListener类 */
public class myGestureListener implements GestureDetector.OnGestureListener
{
/* 手指在屏幕上拖拉时触发此method */
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY)
{
/* 计算X轴基准点移动后的吵置 */
if(pointX+distanceX>=0){
if((pointX+distanceX)>(bmWidth-width)){
pointX=bmWidth-width;
}else{
pointX+=distanceX;
}
}else{
pointX=0;
}
/* 计算Y轴基准点移动后的吵置 */
if(pointY+distanceY>=0){
if((pointY+distanceY)>(bmHeight-height)){
pointY=bmHeight-height;
}else{
pointY+=distanceY;
}
}else{
pointY=0;
}
/* 如果有移动,则更新Bitmap设定 */
if(distanceX!=0&&distanceY!=0)
{
Bitmap newB=Bitmap.createBitmap(bm,pointX,pointY,width,height);
image1.setImageBitmap(newB);
}
return false;
} @Override
public boolean onDown(MotionEvent arg0)
{
return false;
} @Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY)
{
return false;
} @Override
public void onLongPress(MotionEvent e)
{
} @Override
public void onShowPress(MotionEvent e)
{
} @Override
public boolean onSingleTapUp(MotionEvent e)
{
return false;
}
}
}