小编Tri*_*ode的帖子

如何检查Handler是否有活动任务?

如果我有一个Handler handler = new Handler()并为它运行延迟任务handler.postDelayed(xxx, xxx),是否有可能检查是否已postDelayed()被调用?

java android

39
推荐指数
4
解决办法
2万
查看次数

如何在运行时获取设备高度和宽度?

我正在开发一个应用程序,我必须使我们的应用程序适合每个设备 - 平板电脑和Android手机.现在我想在运行时获取设备的高度和宽度,并在我的代码中实现它,以便我的应用程序适用于横向和纵向.

我的XML文件是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layout_weight="2" android:orientation="vertical">

    <LinearLayout android:id="@+id/linearLayout1" android:layout_height="match_parent" 
    android:orientation="horizontal" android:layout_width="match_parent" 
    android:layout_weight="1">

        <LinearLayout android:id="@+id/linearLayout1" android:layout_height="match_parent"  
        android:orientation="vertical" android:layout_width="match_parent" 
         android:layout_weight="1" android:weightSum="100">
            <TextView  android:id="@+id/letter1" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content"  android:layout_weight="60"></TextView>
            <TextView  android:id="@+id/letter2" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content"  android:layout_weight="20"></TextView>
            <TextView  android:id="@+id/letter3" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content"  android:layout_weight="20"></TextView>
        </LinearLayout>

        <LinearLayout android:id="@+id/linearLayout1" android:layout_height="match_parent"  
        android:gravity="center"
        android:orientation="horizontal" android:layout_width="match_parent" 
        android:layout_weight="1">
            <ImageView android:id="@+id/imag"  
            android:gravity="center"
            android:scaleType = "fitCenter"
            android:layout_height="fill_parent" 
            android:layout_width="fill_parent"
             android:layout_gravity="center">
        </ImageView>

        </LinearLayout>

    </LinearLayout>


        <LinearLayout android:layout_gravity="bottom" 
        android:id="@+id/linearLayout2" 
        android:layout_height="wrap_content" android:orientation="horizontal" android:layout_width="match_parent">
            <Button android:id="@+id/previous" android:layout_width="wrap_content" android:layout_weight="1" android:text="Previous" android:layout_height="wrap_content" ></Button>
            <Button android:id="@+id/practice" android:layout_width="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

java android android-emulator android-intent android-layout

29
推荐指数
3
解决办法
5万
查看次数

使用编程方式Android添加参数布局

你好我有一个主屏幕.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment"/>
<ImageButton
    android:id="@+id/imageButton1"
    android:layout_width="55dp"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_marginTop="10dp"
    android:layout_toLeftOf="@+id/toggleButton1"
    android:background="@android:drawable/btn_default"
    android:contentDescription="@string/app_name"
    android:scaleType="centerCrop"
    android:src="@drawable/plus_grey" />

<LinearLayout
    android:id="@+id/lay"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_marginEnd="0dp"
    android:background="#A0FFFFFF"
    android:orientation="horizontal"
    android:visibility="invisible" >

    <TextView
        android:id="@+id/locinfo"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:textColor="@color/cherniy"
        android:textSize="20sp"
        android:visibility="visible" />
</LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

并且有一个imageButton

                    button = (ImageButton) findViewById(R.id.imageButton1);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v)  {
                if (bIcon == false) {
                    button.setImageResource(R.drawable.plus_yellow);                                                                   
                    m = myMap.addMarker(new MarkerOptions().position(myMap.getCameraPosition().target).draggable(true));                     
                    LinearLayout linLayout = (LinearLayout)findViewById(R.id.lay);
                    t = (TextView)findViewById(R.id.locinfo);                      
                    linLayout.setVisibility(View.VISIBLE);
                    t.setVisibility(View.VISIBLE);                      
                                bIcon …
Run Code Online (Sandbox Code Playgroud)

android android-layout layoutparams android-activity

14
推荐指数
1
解决办法
4万
查看次数

是否可以检测应用程序的退出?

我的Android应用程序允许从此启动其他已安装的应用程序.这显示了一些允许的应用程序.如果用户尝试启动不允许的应用程序,则显示消息并使用正在运行的任务返回到我的活动(从每个应用程序启动的位置).我的应用程序充当家庭启动器.如果是一个被阻止的应用程序,则意图进行此活动.例如:可以从三星设备中的图库启动相机.如果相机不是允许的,则显示被阻止的消息并退出到我的但是,当重新启动图库时,阻止的消息会再次显示,因为顶部活动(相机活动)在堆栈中显示.

但退出这些被阻止的应用程序并不完美.

  1. 是否有可能获得应用程序的关闭/退出事件?

  2. 如何完成整个应用程序(通过完成所有应用程序).

  3. 如何在没有任何先前发布历史的情况下启动应用程序?

提前致谢

java android launch

10
推荐指数
1
解决办法
1万
查看次数

SQLiteException:表已经存在

我在我的数据库中添加了名为"MEDIA_TABLE"的表,我收到以下错误代码:

05-15 20:56:22.976: E/AndroidRuntime(5968): android.database.sqlite.SQLiteException: table personal_stats already exists (code 1): , while compiling: CREATE TABLE personal_stats (_id INTEGER PRIMARY KEY AUTOINCREMENT, pictures TEXT, videos TEXT);
Run Code Online (Sandbox Code Playgroud)

我的第二张桌很好用.

我试图卸载我的应用程序并安装它,它不会工作,也许在DB中有一个表的限制?

这是我的onCreate代码:

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE " + TABLE_NAME + " (" +
            COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
            COLUMN_DATE + " TEXT, " +
            COLUMN_EXERCISE + " TEXT, " +
            COLUMN_WEIGHT + " TEXT, " +
            COLUMN_REPS + " TEXT, " +
            COLUMN_SET_TIME + " …
Run Code Online (Sandbox Code Playgroud)

java sqlite android android-sqlite

9
推荐指数
2
解决办法
2万
查看次数

swapCursor未定义错误

我在创建CursorLoader时收到"swapCursor(Cursor)未定义"错误.我导入了android.support.v4(app.LoaderManager,app.LoaderManager.Loader,Content.CursorLoader,content.Loader).不知道我能做些什么来纠正这个问题.请指教.

装载机:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.app.ListFragment;
import android.support.v4.widget.CursorAdapter;



public class LoginList extends FragmentActivity implements OnClickListener, 
AdapterView.OnItemClickListener, LoaderManager.LoaderCallbacks<Cursor> {

    private ListView loginList;
    private Button webLogin;
    private SimpleCursorAdapter adapter;


    @Override 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login_listview);

        loginList = (ListView)findViewById(R.id.loginlist);
        loginList.setOnItemClickListener(this);

        webLogin = (Button)findViewById(R.id.button3);
        webLogin.setOnClickListener(this);



        //Specify fileds to display in the list
        String[] from = new String[] { ListProvider.COLUMN_NAME_SITE };

        //Bind fields to listview
        int[] to = new int[] {R.id.loginlist};

        // Create CursorAdapter and …
Run Code Online (Sandbox Code Playgroud)

android listview cursor android-arrayadapter simplecursoradapter

7
推荐指数
1
解决办法
1467
查看次数

方向更改后,片段中的getActivity()为null

我有一个startActivityForResult,片段和方向更改的问题.

我从一个片段调用startActivityForResult(),然后打开附加了片段的第二个活动.在第二个活动中,当我改变方向并返回第一个活动时,则调用onActivityResult(fragment方法).但是有一个问题,因为我有这样的事情:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    getActivity(); //here's a problem because 
    //getActivity is null but only after orientation change on second activity 
}
Run Code Online (Sandbox Code Playgroud)

android fragment orientation android-fragments android-activity

7
推荐指数
1
解决办法
3810
查看次数

Android:使用矩阵绘制位图

即时通讯尝试在画布上学习绘制位图

drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint);
Run Code Online (Sandbox Code Playgroud)

因为我需要我的一个png几乎每一帧增加它的大小,我设法做到这一点

Matrix matrix=new Matrix();
matrix.setScale(0.001f,0.001f);
Run Code Online (Sandbox Code Playgroud)

这对我来说很好.但我遇到的问题是将图像放在正确的坐标中.我以为其中任何一个都会这样做

matrix.setTranslate(X,Y); matrix.postTranslate(X,Y);

但这就是我错的地方,图像总是在0,0坐标上绘制.在我需要缩放图像之前我使用得很好

canvas.drawBitmap(bmp,x,y,paint);
Run Code Online (Sandbox Code Playgroud)

在哪里我可以指定它的绘制点.我可以使用矩阵版本的drawBitmap吗?或者我应该如何经常调整我的图像大小?

android bitmap matrix android-canvas

6
推荐指数
1
解决办法
8858
查看次数

获取按钮坐标并检测手指是否在他们身上 - Android

我的Android应用程序活动中有4个按钮.这就是它的样子:

如您所见,屏幕底部的textViews显示x和y坐标.坐标参考相对布局.(见下面给出的代码)

现在,我想要做的是在运行时获取4个按钮的x和y坐标,然后确定我的手指是否在移动时触摸按钮.简单来说,我想用手指按住按钮而不是抬起和触摸按钮.我怎样才能实现它?我想在我的钢琴应用程序中实现它.

我能够在屏幕上获得坐标,并且当我移动手指时它们会改变.
所以,我的问题是如何获得按钮的坐标并检测我的手指是否在它们上方滑动?:
XML

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:id="@+id/relativelayout">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Y Cord : "
    android:layout_marginLeft="10dp"
    android:layout_marginBottom="10dp"
    android:id="@+id/textView"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="X Cord : "
    android:layout_marginLeft="10dp"
    android:layout_marginBottom="10dp"
    android:id="@+id/textView2"
    android:layout_above="@+id/textView"
    android:layout_alignParentLeft="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:id="@+id/textView3"
    android:textColor="#000000"
    android:layout_below="@+id/textView2"
    android:layout_toRightOf="@+id/textView" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:id="@+id/textView4"
    android:textColor="#000000"
    android:layout_marginBottom="10dp"
    android:layout_above="@+id/textView"
    android:layout_toRightOf="@+id/textView" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Button"
    android:id="@+id/button"
    android:textColor="#000000"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Button"
    android:textColor="#000000"
    android:id="@+id/button2"
    android:layout_below="@+id/button" …
Run Code Online (Sandbox Code Playgroud)

java android motionevent

6
推荐指数
1
解决办法
5082
查看次数

检测360度转弯算法

我成功检测到手机绕轴的 0-360 度旋转(滚动),但现在我很难设计一种有效的算法来检测一整圈。我的工作但我认为不像我想要的那样优雅和有效的算法是:

private boolean detectRoll;
private boolean[] checkpointsR = new boolean[4];
private boolean fullRollTurn;

public void detectingRoll() {
    setDetectRoll(true);
    checkpointsR[0] = true;
    for (int i = 1; i < 4; i++) {
        if (roll > 90 * i && roll < 90 * (i + 1)
            && checkpointsR[i - 1] == true) {
            checkpointsR[i] = true;
        }
    }

    if (areAllTrue(checkpointsR) && roll > 0 && roll < 45) {
        fullRollTurn = true;
        // reset rollCheckpoints
        for (int i = …
Run Code Online (Sandbox Code Playgroud)

java algorithm android rotation accelerometer

5
推荐指数
1
解决办法
957
查看次数