标签: gravity

改变PopupWindow的重力

我有一个必须显示弹出窗口的按钮.并且弹出窗口必须与按钮的右侧对齐.我就是这样做的.

button.setOnClickListener( new View.OnClickListener() {
    @Override
    public void onClick( final View view ) {
        if(popup == null) {
            final View view = getLayoutInflater().inflate(R.layout.popup, null);
            popup = new PopupWindow(view);
        }

        if(popup.isShowing()) {
            popup.dismiss();
        } else {
            popup.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
            popup.setFocusable(true);
            popup.setWindowLayoutMode(ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);
            popup.showAsDropDown(button, 0, 0);
        }
    }
} );
Run Code Online (Sandbox Code Playgroud)

此代码工作正常,但弹出窗口与按钮的左侧对齐.有没有一种简单的方法来改变PopupWindow的引力?

android gravity popupwindow

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

玩家跌落系统(基本上是重力)

我正在制作一款类似于Doodle Jump的游戏,让你的玩家尽可能高.现在,我让我的播放器工作,并移动.但是,问题是,我没有引力,或任何会让玩家再次摔倒在地的东西.你们有没有想过这样做?我试着让玩家得到一个恒定的力量,一直被推下来,但是,它不是很平滑,并且它不像真正的下降.我可以帮助制作这个玩家掉线系统吗?

编辑:

    GRAVITY = 10;
    TERMINAL_VELOCITY = 300;
    vertical_speed = 0;

    public void fall(){ 
    this.vertical_speed = this.vertical_speed + GRAVITY;
    if(this.vertical_speed > TERMINAL_VELOCITY){
        this.vertical_speed = TERMINAL_VELOCITY;
    }
    this.y = this.y - this.vertical_speed;
}
Run Code Online (Sandbox Code Playgroud)

我做了这个,没用,将我的播放器播放到空中.

java gravity

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

如何让身体忽略重力(AndEngine)?

我有一个精灵(有一个身体)在场景周围反弹.它需要不受重力的影响,但也能够与场景中的其他物体发生碰撞.这意味着我不能使用运动体.我试过了:

body = PhysicsFactory.createCircleBody(mPhysicsWorld, this, BodyType.DynamicBody, PhysicsFactory.createFixtureDef(.5f, .5f, .5f));
        MassData md = new MassData();
        md.mass=0;
        body.setMassData(md);
        mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(this, body, true, true));
Run Code Online (Sandbox Code Playgroud)

我的FixtureDef具有不同的值,但似乎没有任何效果.我的身体仍然落在场景的底部并坐在那里.我看到了一些关于施加相等和相反力量的东西.如果我的引力是地球默认值,这是一个可行的选择,我究竟会怎样做?或者有没有更好的方法从引力场中移除这个物体并仍然与其他动态物体相互作用?

android physics gravity andengine

3
推荐指数
1
解决办法
4950
查看次数

Android:Spinner选择对齐左侧

我完成了我的应用程序的英文版本,现在我正在进行阿拉伯语本地化.阿拉伯语是一种从右到左的语言,所以我需要在布局中调整很多东西,包括我的微调器显示.

当我从微调器选择菜单中选择一个项目时,我看到以下内容,

微调器选择

如您所见,"过敏"与旋转箭头的左侧和顶部对齐.我需要它与右边对齐.

注意阿拉伯语Web服务尚未完成,这就是图像中的数据仍为英语的原因.

编辑

Spinner mSpecialtySpinner = (Spinner) findViewById(R.id.specialty_appointment_spinner);
        ArrayAdapter<Specialty> adapter = new ArrayAdapter<Specialty>(AppointmentReservationActivity.this,android.R.layout.simple_spinner_item, specialities);
        adapter.setDropDownViewResource(R.layout.spinner_item);
        mSpecialtySpinner.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

layout android arabic gravity spinner

3
推荐指数
1
解决办法
7709
查看次数

在GridLayout中对齐按钮

我的布局代码及其图形表示是:

在此输入图像描述

这只是一个例子,我Buttons在我的应用程序中有大约30 个GridLayout.我希望我Buttons在网格中填充整个单元格,网格的列应该是均匀的宽度/高度.

我似乎无法完成它,欢迎任何帮助.

android gravity grid-layout android-button

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

获取数据的SENSOR_TYPE_GRAVITY的工作机制是什么? - Android

我有一个从Android手机加速度计获得的3-D加速度矢量(a,b,c).

我想计算这个向量(a,b,c)和重力向量之间的角度,它精确地指向下方.

我注意到在Android中,有一种方法可以在电话坐标系的上下文中取代重力矢量而不是世界坐标系.通过简单地使用传感器类型SENSOR_TYPE_GRAVITY,我可以得到三维重力矢量(d,e,f).由于两个矢量都在相同的坐标系下,因此电话坐标系统.通过简单的矢量内积,可以很容易地找到它们的角度.

找到此角度后,即使我们从电话坐标系移动到真实坐标系,角度也保持不变.

我的问题:

这背后的工作机制是SENSOR_TYPE_GRAVITY什么?

我不认为有另一种硬件可以测量重力.因此,测量重力的只是测量仪.重力如何提取我们的结果?

我在问,因为我担心这种获得引力的方式的准确性.

如果它不准确,我可以实现一个LPF来自己过滤直流分量,重力.我不确定是否SENSOR_TYPE_GRAVITY比我自己更准确.

==================================更新=============== ========================

为了澄清,我可以使用以下代码正确获取BOTH加速度和重力数据吗?

通过正确,我的意思是加速度和重力属于同一个特定的时刻吗?我需要在一个瞬间使用这些值.因此,加速度为时间= 13:12:00并且重力是较晚时间的情况,例如时间= 13:12:01是不期望的.

public void onSensorChanged(SensorEvent event) { 

    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { 
        acceleration[0] = event.values[0];
        acceleration[1] = event.values[1];
        acceleration[2] = event.values[2];
    }

    if (event.sensor.getType() == Sensor.TYPE_GRAVITY) {
        gravity[0] = event.values[0];
        gravity[1] = event.values[1];
        gravity[2] = event.values[2];
    }

}
Run Code Online (Sandbox Code Playgroud)

android gravity android-sensors

3
推荐指数
1
解决办法
2992
查看次数

如何为重力设置不同的值?

我在Xcode中使用Sprite Kit,我想更改在重力上设置的默认值.这是我的代码:

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"sprite1.png"];
        sprite.position = CGPointMake(-100+CGRectGetMidX(self.frame), 50 + CGRectGetMidY(self.frame));
        [self addChild:sprite];
        sprite.color = [SKColor blueColor];
        sprite.colorBlendFactor = 1.0;
        sprite.xScale = 0.2;
        sprite.yScale = 0.2;
        [SKPhysicsBody bodyWithCircleOfRadius:50];
        sprite.physicsBody.dynamic = YES;
        sprite.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:sprite.size.width * 0.5];
Run Code Online (Sandbox Code Playgroud)

现在我知道使用这行代码应该提供默认设置但我现在无法运行项目:

//self.physicsWorld.gravity = CGPointMake(0.0, -9.8);
Run Code Online (Sandbox Code Playgroud)

救命?

physics gravity sprite-kit skphysicsbody

3
推荐指数
1
解决办法
6613
查看次数

如何使用RelativeLayout以编程方式设置textview的重力?

我正在开发一个Android应用程序。我通过如下填充行来填充ListView:

public class MyListAdapter extends BaseAdapter {
    Context con;
    private LayoutInflater layoutinf;
    ArrayList<Boolean> itemChecked = new ArrayList<Boolean>();
    ArrayList<String> items_ = new ArrayList<String>();

    public MyListAdapter(ChatActivity context) {
        con = context;
    }

    public int getCount() {
        return item_id.size();
    }

    public Object getItem(int position) {
        return item_id.size();
    }

    public long getItemId(int position) {
        return item_id.get(position).hashCode();
    }

    public View getView(final int position, View arg1, ViewGroup arg2) {

        View v = arg1;
        ViewHolder holder = null;
        if (v == null) {
            layoutinf = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); …
Run Code Online (Sandbox Code Playgroud)

android gravity relativelayout baseadapter

3
推荐指数
1
解决办法
2996
查看次数

Android-NavigationView从右到左

我正在使用最新版本的Android Studio(1.5),我想使用抽屉布局制作一个菜单,以便调用GravityCompat.

我正在尝试使用这些组件并对其进行修改,将Drawer从右向左放置.这是我的代码.

public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.END)) {
        drawer.closeDrawer(GravityCompat.END);
    } else {
        super.onBackPressed();
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this …
Run Code Online (Sandbox Code Playgroud)

android gravity navigation-drawer

3
推荐指数
2
解决办法
7730
查看次数

Android DrawerLayout-具有Gravity.Start的openDrawer会产生皮棉错误“必须为...中的一个或多个”

我已经创建了一个DrawerLayout,并且还有一个ImageView(“汉堡”)可以在单击时将其打开。
我的问题是,使用以下代码时,AndroidStudio中会显示lint错误:Must be one or more of: Gravity.LEFT, Gravity.RIGHT...,那里没有任何错误Gravity.START

ImageView openDrawerImageView = findViewById(R.id.open_drawer_image_icon);
openDrawerImageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        drawerLayout.openDrawer(Gravity.START);
    }
});
Run Code Online (Sandbox Code Playgroud)

android lint gravity drawerlayout

3
推荐指数
1
解决办法
382
查看次数