当前位置:首页 » 安卓系统 » android横向滑动

android横向滑动

发布时间: 2022-01-09 21:51:14

‘壹’ android 手势判断是横向滑动还是纵向 csdn

对于Android中的手势识别可以从以下三个Listener入手——OnTouchListener、OnGestureListener、OnDoubleTapListener。这三个监听器分别是触摸监听、手势滑动监听和屏幕双击操作监听。很多的时候我们需要这些手势识别的操作,例如我们自定义控件的时候就经常会用到。下面就对这三个监听器分别进行介绍。

触摸监听器OnTouchListener
让我们的Activity去现实此接口,并重写onTouch方法。重写OnTouchListener的onTouch方法 此方法在触摸屏被触摸,即发生触摸事件(接触和抚摸两个事件)的时候被调用。示范代码如下:

@Override
public boolean onTouch(View v, MotionEvent event) {
detector.onTouchEvent(event);
Toast.makeText(this, "onTouch", TIME_OUT).show();
return true;
}

手势滑动监听器OnGestureListener
让我们的Activity去现实此接口,并重写onFling、onLongPress、onScroll、onDown、onShowPress、onSingleTapUp方法。示范代码如下:

/**
* 手势滑动时别调用
*/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {

if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE) {
Toast.makeText(this, "向左滑动", TIME_OUT).show();
} else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE) {
Toast.makeText(this, "向右滑动", TIME_OUT).show();
}
return false;
}

/**
* 长按时被调用
*/
@Override
public void onLongPress(MotionEvent e) {
Toast.makeText(this, "触发长按回调", TIME_OUT).show();
}

/**
* 滚动时调用
*/
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
Toast.makeText(this, "触发滚动回调", TIME_OUT).show();
return false;
}

/**
* 在按下动作时被调用
*/
@Override
public boolean onDown(MotionEvent e) {
Toast.makeText(this, "按下回调", TIME_OUT).show();
return false;
}

/**
* 按住时被调用
*/
@Override
public void onShowPress(MotionEvent e) {
Toast.makeText(this, "按住不松回调", TIME_OUT).show();
}

/**
* 抬起时被调用
*/
@Override
public boolean onSingleTapUp(MotionEvent e) {
Toast.makeText(this, "触发抬起回调", TIME_OUT).show();
return false;
}

双击屏幕监听器OnDoubleTapListener
让我们的Activity去现实此接口,并重写onDoubleTap、onDoubleTapEvent、onSingleTapConfirmed方法。示范代码如下:

@Override
public boolean onDoubleTap(MotionEvent arg0) {
Toast.makeText(this, "触发双击回调", TIME_OUT).show();
return false;
}

@Override
public boolean onDoubleTapEvent(MotionEvent arg0) {
Toast.makeText(this, "触发双击的按下跟抬起回调", TIME_OUT).show();
return false;
}

@Override
public boolean onSingleTapConfirmed(MotionEvent arg0) {
Toast.makeText(this, "触发单击确认回调", TIME_OUT).show();
return false;
}

‘贰’ 安卓recyclerview怎么实现横向滑动

public class RecyclerActivity extends Activity {

private RecyclerView mRecyclerView;
private GalleryAdapter mAdapter;
private List<Integer> mDatas;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recycler);

initDatas();
//得到控件
mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview_horizontal);
//设置布局管理器
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
mRecyclerView.setLayoutManager(linearLayoutManager);
//设置适配器
mAdapter = new GalleryAdapter(this, mDatas);
mRecyclerView.setAdapter(mAdapter);
}

private void initDatas()
{
mDatas = new ArrayList<>(Arrays.asList(R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher));
}

public class GalleryAdapter extends
RecyclerView.Adapter<GalleryAdapter.ViewHolder>
{
private LayoutInflater mInflater;
private List<Integer> mDatas;

public GalleryAdapter(Context context, List<Integer> datats)
{
mInflater = LayoutInflater.from(context);
mDatas = datats;
}

public class ViewHolder extends RecyclerView.ViewHolder
{
public ViewHolder(View arg0)
{
super(arg0);
}

ImageView mImg;
TextView mTxt;
}

@Override
public int getItemCount()
{
return mDatas.size();
}

/**
* 创建ViewHolder
*/
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i)
{
View view = mInflater.inflate(R.layout.activity_recycler_item,
viewGroup, false);
ViewHolder viewHolder = new ViewHolder(view);

viewHolder.mImg = (ImageView) view
.findViewById(R.id.id_index_gallery_item_image);
return viewHolder;
}

/**
* 设置值
*/
@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int i)
{
viewHolder.mImg.setImageResource(mDatas.get(i));
}

}
}

‘叁’ android HorizontalScrollView, 横向滚动菜单,点击项,控制移动的距离

有好多实现方法,简单的就是用GridView(安卓自带网格布局)或者HorizontalListView(自定义横向list,网上有好多的)
再就是在activity中ScrollView自定义添加子View
还可以用ViewPager,TabHost

‘肆’ android 横向列表滑动的问题

@Override
public boolean dispatchTouch Event (MotionEvent ev) {

ViewParent parent =this;

while(!((parent = parent.getParent()) instanceof ViewPager))

;// 循环查找viewPager

parent.(true);

return super.dispatchTouchEvent(ev);

}

‘伍’ android文字横向滚动的自定义view

TextView实现文字滚动需要以下几个要点: 1.文字长度长于可显示范围:android:singleLine=”true” 2.设置可滚到,或显示样式
TextView实现文字滚动需要以下几个要点:
1.文字长度长于可显示范围:android:singleLine=”true”
2.设置可滚到,或显示样式:android:ellipsize=”marquee”
3.TextView只有在获取焦点后才会滚动显示隐藏文字,因此需要在包中新建一个类,继承TextView。重写isFocused方法,这个方法默认行为是,如果TextView获得焦点,方法返回true,失去焦点则返回false。跑马灯效果估计也是用这个方法判断是否获得焦点,所以把它的返回值始终设置为true。
自定义一个
AlwaysMarqueeTextView 类
public class AlwaysMarqueeTextView extends TextView { public AlwaysMarqueeTextView(Context context) { super(context); } public AlwaysMarqueeTextView(Context context, AttributeSet attrs) { super(context, attrs); } public AlwaysMarqueeTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean isFocused() { return true; }
在布局XML文件中加入这么一个AlwaysMarqueeTextView,这个加入方法也是刚刚学的。
<com.examples.AlwaysMarqueeTextView android:id=“@+id/AMTV1″ android:layout_width=“fill_parent” android:layout_height=“wrap_content” android:lines=“1″ android:focusable=“true” android:focusableInTouchMode=“true” android:scrollHorizontally=“true” android:marqueeRepeatLimit=“marquee_forever” android:ellipsize=“marquee” android:background=“@android:color/transparent” />
ellipsize属性
设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)
marqueeRepeatLimit属性
在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。
focusable属性
自己猜测的,应该是能否获得焦点,同样focusableInTouchMode应该是滑动时能否获得焦点。
组合View的问题:
< LinearLayout xmlns:android =“http://schemas.android.com/apk/res/android” android:orientation =“vertical” android:gravity =“center_vertical” android:background =“@drawable/f_background” android:layout_width =“fill_parent” android:focusable =“true” android:layout_height =“50px” > < TextView android:id =“@+id/info_text” android:focusable =“true” android:layout_width =“fill_parent” android:layout_height =“wrap_content” android:text =“test marquee .. “ android:textColor =“@color/black” android:singleLine =“true” android:ellipsize =“marquee” android:marqueeRepeatLimit =“3″ android:textSize =“18sp” /> < TextView android:id =“@+id/date_text” android:layout_width =“fill_parent” android:layout_height =“wrap_content” android:layout_gravity =“bottom” android:textColor =“@color/gray” android:text =“2010/05/28″ android:textSize =“12sp” /> </ LinearLayout >
上面示例中2个TextView组合为一个View,由于设置了LinearLayout为focusable而TextView就没法取得焦点了,这样 这个TextView的跑马灯效果就显示不出来,就算你也设置TextView的

‘陆’ 如何实现android中横向滚动的gridView

法1.直接用tablelayout gridview是根据你每行的单元数自动生成的行数;
法2.可以在代码里根据view数来动态设置列数,比如有10记录可以设置列数为10/3+1,这样就有三行四列了。
如果您对我的回答有不满意的地方,还请您继续追问;
答题不易,互相理解,互相帮助!

‘柒’ android中用HorizontalScrollView+ImageSwitcher做相册,对横向滑动的小图片,选中后如何画框

你上网找下 Wrox.Beginning.Android.4.Application.Development.Mar.2012.pdf 这个文件,里有你想的答案。

‘捌’ android开发中,怎么实现上下滑动,不是ScrollView,我要的是一次滑动整个页面,跟横向滑动效果一样。。

直接用intent跳转到下个页面啊 判断用户有向上滑动的手势 就跳转 然后设置一个 跳转的动画效果就可以了..

‘玖’ 如何让安卓手机应用程序横屏滑动

需要破解手机以后,才可以安装横屏软件,

或者给横屏软件签名后才可以安装哦横屏软件的话,

‘拾’ android 中横向滑动屏幕时怎样让其他触摸监听事件失效

监听它们,不做任何操作.

热点内容
vc60非静态编译 发布:2025-01-11 10:51:32 浏览:613
电脑上怎么解压缩文件 发布:2025-01-11 10:51:31 浏览:782
枪战王者如何用账号密码登录 发布:2025-01-11 10:30:56 浏览:936
mysql在linux下安装 发布:2025-01-11 10:30:49 浏览:843
数据库copy 发布:2025-01-11 10:26:06 浏览:533
unity清理缓存 发布:2025-01-11 10:25:23 浏览:466
优酷视频双击上传 发布:2025-01-11 10:24:41 浏览:963
存储脐带胎儿干细胞 发布:2025-01-11 10:18:36 浏览:330
实简ftp软件怎么改服务器文件 发布:2025-01-11 10:09:39 浏览:555
qb充值源码 发布:2025-01-11 10:00:21 浏览:27