我了解Android的开发者网站提供了有关此主题的信息.我已经阅读了以下三页:
他们没有提供我正在寻找的信息/统计数据.从第二个链接来看,支持的两个最重要的屏幕类别是normal-hdpi
和normal-mdpi
.
问题是,仅仅知道这两个类别最受欢迎对我没有帮助.该网站为我提供了这些类别的屏幕尺寸和密度范围,但范围非常大.
我想知道这两个类别中最流行的手机是什么.更具体地说,我正在寻找这两个类别中最受欢迎的决议.
Back
按下按钮时的默认动画是从左到右的幻灯片.我想用自定义动画替换它.我目前正在考虑某些组合onBackPressed()
并overridePendingTransition
将会做到这一点,但我无法让它发挥作用.
我需要能够访问视图画布的大小来执行一些计算.由于某种原因,传递给的视图onSizeChanged
的大小不同于传递给的画布的大小onDraw
.我当前的解决方法使用布尔标志来确定何时需要进行计算.
理想的解决方案将允许我在onSizeChanged
方法中进行这些计算,所以我想知道......有什么办法可以Canvas
在onDraw
方法之外得到对象(或者至少它的维度)吗?
我的代码如下.它以给定角度绘制圆的半径.当我canvas.centerX()
用来确定半径的起点和终点时,一切都很完美.如果我使用传入的参数onSizeChanged
,它甚至远程接近正确.
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
mSizeChanged = true;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (mSizeChanged) {
RectF bounds = new RectF(canvas.getClipBounds());
float centerX = bounds.centerX();
float centerY = bounds.centerY();
float radianAngle = (float) Math.toRadians(mStartAngle);
mRadius[0] = center;
mRadius[1] = center;
mRadius[2] = center + center * FloatMath.cos(radianAngle);
mRadius[3] = …
Run Code Online (Sandbox Code Playgroud) 我不熟悉参数语法 doInBackground(Params... params)
什么是这种类型的东西,我该如何利用它?
单击按钮时,将运行以下方法:
public void createTableRow(View v) {
TableLayout tl = (TableLayout) findViewById(R.id.spreadsheet);
TableRow tr = new TableRow(this);
LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
tr.setLayoutParams(lp);
TextView tvLeft = new TextView(this);
tvLeft.setLayoutParams(lp);
tvLeft.setBackgroundColor(Color.WHITE);
tvLeft.setText("OMG");
TextView tvCenter = new TextView(this);
tvCenter.setLayoutParams(lp);
tvCenter.setBackgroundColor(Color.WHITE);
tvCenter.setText("It");
TextView tvRight = new TextView(this);
tvRight.setLayoutParams(lp);
tvRight.setBackgroundColor(Color.WHITE);
tvRight.setText("WORKED!!!");
tr.addView(tvLeft);
tr.addView(tvCenter);
tr.addView(tvRight);
tl.addView(tr, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
}
Run Code Online (Sandbox Code Playgroud)
R.id.spreadsheet
是一个xml TableLayout.我可以从调试中看到正在访问该方法,但没有任何内容被绘制到屏幕上.是什么赋予了?我是否需要以某种方式重置内容视图?
在循环中声明一个变量是不好的做法?在我看来,这样做,如下面的第一个代码块所示,将使用十倍的内存作为第二个...由于在循环的每次迭代中创建一个新的字符串.它是否正确?
for (int i = 0; i < 10; i++) {
String str = "Some string";
}
Run Code Online (Sandbox Code Playgroud)
与
String str;
for (int i = 0; i < 10; i++) {
str = "Some String";
}
Run Code Online (Sandbox Code Playgroud) 关于后退按钮的几个问题(如模拟器上所示)......
所有的Android手机都有后退按钮作为坚硬的触觉按钮吗?
如果是这样,是否仍建议在软件中放置一个后退按钮?
按下此后退按钮时是否可以在活动之间更改动画?我希望它与我的应用程序中的动画一致.
我目前正在使用类似的东西:TextView.SetBackgroundColor(Color.WHITE);
在我的java代码中.我希望能够通过java为textview添加一些透明度......这很容易通过#AARRGGBB
格式在XML中完成,但我还没有找到一种方法来以编程方式完成此操作.
首先让我解释一下我的目标.我试图Animation
改变一个属性ArcShape
.一个ArcShape's
构造函数有两个领域:startAngle
和sweepAngle
.我想要制作动画sweepAngle
,使其在屏幕上显示为一个不断缩小的圆圈.
您可以通过想象PacMan来拍摄这个动画.想象一下,他的嘴闭上了.这个动画将类似于他越来越多地打开他的上颌,直到没有更多的PacMan.
现在......我有一些实施这个问题.首先,一旦ArcShape
创建了一个,就没有内置的方法来改变它sweepAngle
.这让我想到了第一个问题:有没有办法覆盖ArcShape
并实现某些setSweepAngle
方法?或者我是否必须new ArcShape
为每个sweepAngle
我希望展示的内容创建一个?
现在转到第二个问题......假设我找到了第一个问题的解决方案,我怎么能创建它Animation
呢?这是我现在所拥有的要点:
public class OpenPacman extends Animation {
public OpenPacman(float startAngle, float sweepAngle) {
mStartAngle = startAngle;
mSweepAngle = sweepAngle;
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
/* This represents the current sweepAngle */
float currAngle = mStartAngle + ((mSweepAngle - mStartAngle) * interpolatedTime);
//Now I need to update …
Run Code Online (Sandbox Code Playgroud) 我有一个绑定到SQLite数据库的ExpandableListView.为简化起见,我们假设数据库包含两列:title
和body
.在ExpandableListView中,group
每个都有title
一个child
,每个对应一个body
.
现在为了使事情变得更有趣,SQLite数据库中的一些行没有body
(即......它们只有一个title
).如您所见,如果没有正文,则没有理由扩展该组...因为子将为空(即String body == ""
).
我正在寻找一种方法来捕捉这样的情况,并跳过小组的扩张.我不希望一个空白的孩子被扩大.把它放在psuedo代码中,我想要这样的东西:
if (body.getText() == "") {
//DO NOT EXPAND
//DO OTHER STUFF
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?
android ×9
java ×2
animation ×1
argb ×1
colors ×1
custom-view ×1
parameters ×1
screen-size ×1
syntax ×1
view ×1