我正在尝试通过脚本移动按钮。这是它的样子:
Handler handler2 = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
float y = chatButtonOne.getY();
float yB = 40;
float pxs = yB * getResources().getDisplayMetrics().density;
chatButtonOne.setY(y - pxs);
chatButtonOne2.setVisibility(View.VISIBLE);
}
}, 2000);
现在这个(y - 40)在不同的设备大小方面存在问题,所以我尝试使用dp代替。有人知道怎么做吗?
编辑:这里有一个技巧,我更新了我发布的原始脚本:
答案 0 :(得分:1)
您需要计算dp的像素。你可以用这个来实现:
public static int pixelToDps(Context context, int desiredDps) {
final float scale = context.getResources().getDisplayMetrics().density; //get device density
int calculatedPixels = (int) (desiredDps * scale + 0.5f); //The +0.5 rounds up to the nearest whole number if necessary. When converted to integer, everything after the decimal is simply cut off. The +0.5 ensures that the most "correct" integer is returned
return calculatedPixels;
}
答案 1 :(得分:0)
您可以使用SUM
将<{1}}转换为像素:
dp