【问题标题】:make Analogclock in android在android中制作Analogclock
【发布时间】:2015-02-05 11:39:08
【问题描述】:

我是 android 新手,我想制作一个简单的应用程序,我想在其中显示模拟时钟。我知道时钟是如何工作的,但我无法设计它。到目前为止,我已经画了圆圈,现在我想附加资源,但我不知道该怎么做。任何人都可以帮助我并给我程序。谢谢

public class MyView extends View
{    

public MyView(Context context) 
{
     super(context);
}




@Override
protected void onDraw(Canvas canvas) 
{
   super.onDraw(canvas);

   int x = getWidth();
   int y = getHeight();
   int radius=200;
   int w=2*radius;
   int h=2*radius;
   boolean changed = mChanged;
   if (changed) {
       mChanged = false;
   }
   boolean seconds = mSeconds;
   if (seconds ) {
    mSeconds = false;
   }
  // radius = 200;
   Paint paint = new Paint();
   paint.setStyle(Paint.Style.FILL);
   paint.setColor(Color.BLACK);
   canvas.drawPaint(paint);
   // Use Color.parseColor to define HTML colors
   paint.setColor(Color.parseColor("#b60f2e"));
   canvas.drawCircle(x /2, y / 2, radius, paint);
   paint.setColor(Color.parseColor("#f6e1ff"));
   canvas.drawLine(x/2, y/2 + radius,x/2, y/2-15 + radius, paint);
   canvas.drawLine(x/2 , y/2 - radius,x/2 ,y/2 - radius+15, paint);
   canvas.drawLine(x/2 + radius, y/2 , x/2 + radius-15, y/2, paint);
   canvas.drawLine(x/2 - radius, y/2, x/2 - radius+15, y/2, paint);
   canvas.save();
   canvas.rotate(mHour / 12.0f * 360.0f, x, y);
   final Drawable hourHand = mHourHand;

   hourHand.draw(canvas);
   canvas.restore();


  }
  }

【问题讨论】:

  • “添加资源”是什么意思?
  • 您还可以从您的资源中在画布上绘制可绘制对象
  • 是的,我想从可绘制文件夹中将时针和分针放在画布上,但我不知道该怎么做。
  • 为什么不使用 AnalogClock 视图?你可以在你的类中扩展它并覆盖某些方法。developer.android.com/reference/android/widget/AnalogClock.html
  • 是的,我知道,但我想自己建造

标签: android canvas view time clock


【解决方案1】:

这里有一些你可能会感兴趣的例子。 http://mindtherobot.com/blog/272/android-custom-ui-making-a-vintage-thermometer/

否则你可以使用drawable而不是位图。基本上你应该参考drawable

Drawable hand = getResources().getDrawable(R.drawable.minute_hand);

并在自定义视图的 onDraw 回调中将其绘制在画布上

hand.draw(canvas);

p.s.下次寻找类似的问题,因为已经有很多可用的了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 2013-05-23
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    相关资源
    最近更新 更多