我正在运行 Android 应用程序“Android-13”,在 Logcat 中我看到此警告,如何解决此问题?
OnBackInvokedCallback is not enabled for the application.
Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
Run Code Online (Sandbox Code Playgroud) 在代码中,是否有任何方法可以使按钮持续闪烁,然后在按下时停止闪烁?
我们可以在Android中使用缩放手势检测器进行缩放缩放吗?
我已经使用导航模式实现了Tab视图和水平滑动视图(以更改选项卡)作为应用程序的列表.我正在使用ActionBarSherlock和TabPageIndicator.更改选项卡后,我使用片段重新加载内容.
在下拉微调器中,我有2个项目.每当活动重新加载或在Tabs上点击后,都会选择这些选项.
但是,如果执行滑动以选择其他选项卡,那么onNavigationItemSelected(int position,long itemId)将不会在Gingerbread版本中被触发:(我们在Gingerbread 2.3.6,2.3.3上测试了它.
在logcat,我收到了这条warning消息"View:onTouchEvent:ViewFlags" is DISABLED
但是,它在ICS,Froyo等上运行得非常好.
非常感谢您的帮助.
以下是代码段:
public class MainPageActivity extends SherlockFragmentActivity implements
ActionBar.OnNavigationListener {
MenuItem menuItem;
EditText searchText;
public static Context mContext;
public static DataAdapter dataAdapter;
ArrayList<String> accountList;
public static List<View> currentViewBeingChanged = new ArrayList<View>();
public static LayoutInflater layoutInflater;
public static String checktab = "running", nameComp;
int isRefresh;
public static boolean isAutoRefresh = true;
public static ArrayList<String> listItems;
public static boolean check;
public static boolean isAtleastOnce = true, listToBeRefreshed …Run Code Online (Sandbox Code Playgroud) 我正在编写自己的图像查看器,使用户可以向左或向右滑动以查看下一个\上一个图像.我想根据投掷速度为图像变化设置动画.
为了检测一个手势和它的速度,我按照这个基本的手势检测,并按照接受的答案建议:
public class SelectFilterActivity extends Activity implements OnClickListener
{
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private GestureDetector gestureDetector;
View.OnTouchListener gestureListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* ... */
// Gesture detection
gestureDetector = new GestureDetector(this, new MyGestureDetector());
gestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
};
}
class MyGestureDetector extends SimpleOnGestureListener {
@Override …Run Code Online (Sandbox Code Playgroud) 我是Android开发的新手,正在为盲人开展一个无障碍研究项目(Jelly Bean API 17级项目).我一直在试验一些手势,而且双指拖动手势实施起来非常困难.以下图片捕获了我实际需要的内容.

我希望盲人用户将两根手指水平拖动(屏幕上的任何位置),然后他将获得他/她在EditText中输入的文本的音频输出.同时根据两个手指在拖动时的距离,我们分别输出每个单词.(例如下面的例子)
示例:如果用户键入"今天是美好的一天"并将他的手指(x值)拖动(比方说)10个单位到左边我们输出"美好的一天"但是如果他拖动它说20个单位到左边我们输出"好"一天",对于30个单位到左"是一个美好的一天"等等.
我偶然发现它似乎检测到双指触摸:
TouchEvent(MotionEvent event)
Run Code Online (Sandbox Code Playgroud)
另外这个关于检测多个触摸的教程看起来很有希望,但是我需要它来处理触摸和拖动,我不确定是否可以像这样实现.
任何新的建议来实现这个或指向可以帮助的教程将是伟大的!
在此先感谢,Adit
我试图在我的应用程序中实现多点触控时,我以某种方式得到意想不到的结果.我永远不会获得多个指针的数据.我的手机上的多点触控确实有效,因为我可以使用GestureDetector捏缩放浏览器并检测捏合手势,但action=0 pointers=1无论我用多少手指触摸屏幕,下面的样本都会打印出来.
我需要在配置/ AndroidManifest或Activity创建中有什么东西
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.ll1).setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("TAG","onTouch action="+event.getAction()+" pointers="+event.getPointerCount());
return false;
}
});
}
Run Code Online (Sandbox Code Playgroud)
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我正在开发一款适用于Android的简单书籍阅读器应用程序.我已经使用了listview.
我正在做的是将远程图像从服务器加载到我的Listview(使用毕加索库),并且工作正常.
我还想在我的Reader中缩放功能,我使用ZoomListView类来实现这一点.
public class ZoomListView extends ListView {
private static final int INVALID_POINTER_ID = -1;
private int mActivePointerId = INVALID_POINTER_ID;
private ScaleGestureDetector mScaleDetector;
private float mScaleFactor = 1.f;
private float maxWidth = 0.0f;
private float maxHeight = 0.0f;
private float mLastTouchX;
private float mLastTouchY;
private float mPosX;
private float mPosY;
private float width;
private float height;
public ZoomListView(Context context) {
super(context);
mScaleDetector = new ScaleGestureDetector(getContext(),
new ScaleListener());
}
public ZoomListView(Context context, AttributeSet attrs) {
super(context, attrs);
mScaleDetector = new …Run Code Online (Sandbox Code Playgroud) 首先,这是一个最初在这里提出的跟进问题,在Android中平移,缩放和缩放自定义的Canvas绘图视图
由于还没有答案,我终于使用android-gesture-detector解决了我的问题
应用缩放/缩放手势后,我发现,画布绘制坐标仍然指向旧位置(在应用缩放之前),而不是绘制完全相同的触摸坐标.基本上,在缩放或拖动画布后,我无法获得正确的画布坐标.
在缩放之前,
缩小后,触摸点将绘制在之前的位置.我希望它能够在当前触摸位置上绘制,
示例代码,
public class DrawingView extends View {
private void setupDrawing() {
mScaleDetector = new ScaleGestureDetector(getContext(), new ScaleListener());
mgd = new MoveGestureDetector(ctx, mgl);
sgd = new ScaleGestureDetector(ctx, sgl);
rgd = new RotateGestureDetector(ctx, rgl);
}
class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
mScaleFactor *= detector.getScaleFactor();
// Don't let the object get too small or too large.
mScaleFactor = Math.max(0.1f, Math.min(mScaleFactor, 5.0f));
invalidate();
return true;
}
}
MoveGestureDetector.SimpleOnMoveGestureListener mgl = new …Run Code Online (Sandbox Code Playgroud) android android-canvas android-view android-gesture android-touch-event
android-gesture ×10
android ×9
android-view ×2
java ×2
pinchzoom ×2
android-13 ×1
flags ×1
listview ×1
multi-touch ×1