首页 > 其他分享 >android开发之gallery 实现滚动一张且短距离滑动实现滚动

android开发之gallery 实现滚动一张且短距离滑动实现滚动

时间:2023-03-20 13:02:11浏览次数:53  
标签:滚动 int gallery return public import android drawable


首先gallery的特点就不用多说了吧,惯性滚动、半屏翻页,但是很多时候我们不需要它的这些特性。我今天就介绍一下 去掉惯性滚动 以及 短距离翻页的实现:
代码先晒出来:
main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.mh.DetialGallery android:id="@+id/gallery" android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>



DetialGallery 是自己继承的类。


import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

public class main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN ,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.main);
Gallery gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter(new ImageAdapter(this));;

}

private int[] resIds = new int[]
{ R.drawable.a1, R.drawable.a2, R.drawable.a3,
R.drawable.a4, R.drawable.a5, R.drawable.a6,
R.drawable.a7, R.drawable.a8, R.drawable.a9
};




public class ImageAdapter extends BaseAdapter
{
int mGalleryItemBackground;
private Context mContext;

public ImageAdapter(Context context)
{
mContext = context;
}

public int getCount()
{
return resIds.length;
}
public Object getItem(int position)
{
return position;
}

public long getItemId(int position)
{
return position;
}

public View getView(int position, View convertView, ViewGroup parent)
{
ImageView imageView = new ImageView(mContext);
imageView.setImageResource(resIds[position]);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setLayoutParams(new Gallery.LayoutParams(480, 800)); //分辨率自己定
return imageView;
}
}

}



import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.widget.Gallery;

public class DetialGallery extends Gallery {

public DetialGallery(Context context ,AttributeSet attrSet) {
super(context,attrSet);
// TODO Auto-generated constructor stub
}

private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2)
{
return e2.getX() > e1.getX();
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
// return super.onFling(e1, e2, 0, velocityY);//方法一:只去除翻页惯性
// return false;//方法二:只去除翻页惯性 注:没有被注释掉的代码实现了开始说的2种效果。
int kEvent;
if(isScrollingLeft(e1, e2)){
//Check if scrolling left
kEvent = KeyEvent.KEYCODE_DPAD_LEFT;
} else{
//Otherwise scrolling right
kEvent = KeyEvent.KEYCODE_DPAD_RIGHT;
}
onKeyDown(kEvent, null);
return true;
}
}




让Android自带的Gallery实现多点缩放,拖动和边界回弹效果,效果流畅


​http://www.havenliu.com/android/668.html​


标签:滚动,int,gallery,return,public,import,android,drawable
From: https://blog.51cto.com/u_5454003/6132606

相关文章

  • android上一些方法的区别和用法的注意事项
    onMeasure()和onLayout()1.onMeasurea.属于View的方法,用来测量自己和内容的来确定宽度和高度b.view的measure方法体中会调用onMeasure2.onLayouta.属于ViewG......
  • 【Android 逆向】【攻防世界】Ph0en1x-100
    1.apk安装到手机,老套路需要输入flag2.jadx打开apk,没有加壳......publicvoidonGoClick(Viewv){StringsInput=this.etFlag.getText().toString()......
  • android stdio对于xml中列表的展示
    我们需要用到一个控件,ListView如果愿意深度学习,可以观看下方的文章。(11条消息)Android最常用的控件ListView(详解)_androidlistview_撩得Android一次心动的博客-CSDN博......
  • [Android] Android版本 和 SDK / NDK / Qt 版本对应关系
    系统版本与SDK版本平台版本 API级别(SDK版本)版本代号发布时间Android1130R2020.9Android10.029 Q2019.8Android9.028Pie2018.8Android8.1 27 Oreo2017.12Android8.0......
  • android studio里设置 大括号占一行
    看了书《构建之法》里面有说到建议编程时的那个大括号占一行的,今天学android的时候突然想试试设置 一下,上网搜索了一下,方法如下图:  这样就可以了!!!......
  • Android控件TextProgressBar进度条上显文字
    Android系统的进度条控件默认的设计的不是很周全,比如没有包含文字的显示,那么如何在Android进度条控件上显示文字呢?来自Google内部的代码来了解下,主......
  • Android的Handler总结
    <一>Handler的定义:         主要接受子线程发送的数据,并用此数据配合主线程更新UI.         解释:当应用程序启动时,And......
  • Android AsyncTask异步任务的使用
    文章目录​​小结​​​​定义异步任务类​​​​开启异步任务​​​​参考​​小结可以使用androidAsyncTask来执行繁重的后台任务,以避免UI界面无响应,并可以实时在UI界面......
  • Android自定义长按事件
    Android系统自带了长按事件,setOnLongClickListener即可监听。但是有时候,你不希望用系统的长按事件,比如当希望长按的时间更长一点的时候。这时候就需要......
  • [ROC-RK3568-PC] [Firefly-Android] 10min带你了解Ethernet的使用
    ......