GVKun编程网logo

php – Facebook getLoginUrl for canvas

5

在这篇文章中,我们将带领您了解php–FacebookgetLoginUrlforcanvas的全貌,同时,我们还将为您介绍有关Androidcanvas里面paint旋转canvas有锯齿、Andr

在这篇文章中,我们将带领您了解php – Facebook getLoginUrl for canvas的全貌,同时,我们还将为您介绍有关Android canvas 里面 paint 旋转 canvas 有锯齿、Android 中View.onDraw(Canvas canvas)的使用方法、Android:android.graphics.Canvas.drawLine(Canvas.java:809)中的java.lang.NullPointerException(可能与我的drawable资源有关)、canvas 与 svg 的区别有什么?canvas 和 svg 的区别比较的知识,以帮助您更好地理解这个主题。

本文目录一览:

php – Facebook getLoginUrl for canvas

php – Facebook getLoginUrl for canvas

我在facebook上有一个画布应用程序,我正在使用代码:

$loginUrl = $facebook->getLoginUrl(
    array(
    'canvas'    => 1,
    'fbconnect' => 0,
    'scope' => 'email,publish_stream,offline_access'

));

但是,当用户单击“转到应用程序”按钮时,它会直接重定向到我的应用程序,而不是在Facebook,但实际上是完整的URL.

如何让它返回应用页面?

解决方法:

好的,答案很简单.

$loginUrl = $facebook->getLoginUrl(
    array(
    'canvas'    => 1,
    'fbconnect' => 0,
    'scope' => 'email,publish_stream,offline_access',
    'redirect_uri' => 'http://uri'

));

但是,如果您在应用程序设置中选择了Canvas App,则redirect_uri必须与为Canvas App设置的URL相同.

如果它只是一个页面选项卡,您可以重定向到任何内容

Android canvas 里面 paint 旋转 canvas 有锯齿

Android canvas 里面 paint 旋转 canvas 有锯齿

this.paint.setAntiAlias(true);
        this.paint.setStyle(Paint.Style.STROKE);//设置空心  
     this.paint.setColor(colorCircle);  

       canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG | Paint.LINEAR_TEXT_FLAG));

     canvas.rotate(xuzhuan);
        RectF oval1 = new RectF(a, b, c, d);
        canvas.drawRect(oval1, this.paint);

Android 中View.onDraw(Canvas canvas)的使用方法

Android 中View.onDraw(Canvas canvas)的使用方法

Android 中View.onDraw(Canvas canvas)的使用方法

View通过View.onDraw(Canvas canvas)来Draw.

我们可以定义自己的继承于View的TestView,然后重载View.onDraw(Canvas canvas).

对于自定义的TestView如何与Activity关联?有以下两种方式:

  1. 直接在setContentView(View view)里面加进去自定义的View:setContentView(new TestView(this)).
  2. 另外,可以在layout文件里面可以使用自定义的View(如何自定义的View为内部类,就会失效),

如:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  xmlns:android="http://schemas.android.com/apk/res/android"> 
  <com.android.test.TestView 
    android:id="@+id/testview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"/> 
</FrameLayout> 

 以下为使用onDraw(Canvas canvas)画矩形区域,及在其上画文本的实例(通过使用内部类使程序显得更加简洁,紧凑):

package com.android.test; 
import android.app.Activity; 
import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.graphics.Rect; 
import android.graphics.Typeface; 
import android.os.Bundle; 
import android.view.View; 
public class TestActivity extends Activity { 
  /** Called when the activity is first created. */ 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(new TestView(this)); 
  } 
  public class TestView extends View { 
    private Paint mPaint = new Paint(); 
    public TestView(Context context) { 
      super(context); 
    } 
     
    @Override 
    protected void onDraw(Canvas canvas) { 
      // Todo Auto-generated method stub 
      super.onDraw(canvas); 
       
      String text = "Android - 机器人";      
      mPaint.setColor(Color.WHITE); 
       
      Paint paint = new Paint(); 
      paint.setColor(Color.RED); 
       
      String familyName = "宋体"; 
      Typeface font = Typeface.create(familyName,Typeface.BOLD); 
      paint.setTypeface(font); 
       
      paint.setTextSize(22); 
       
      canvas.drawRect(new Rect(0,320,240),mPaint); 
      canvas.drawText(text,100,paint); 
    } 
  } 
} 

 运行效果如下图:

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Android:android.graphics.Canvas.drawLine(Canvas.java:809)中的java.lang.NullPointerException(可能与我的drawable资源有关)

Android:android.graphics.Canvas.drawLine(Canvas.java:809)中的java.lang.NullPointerException(可能与我的drawable资源有关)

我正在尝试在每列中构建一个包含7列和24个TextView的子视图.

当我的活动开始时,我得到一个异常,它在堆栈跟踪中的任何地方都没有我的包.

这是24个文本视图中每个视图的背景可绘制资源

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item><shape><solid android:color="#CCC"/></shape></item>
    <item android:top=".5pt" android:bottom=".5pt">
        <shape android:shape="line">
            <size android:height="1pt" android:color="#CCC" android:dashWidth="1pt" android:dashGap="1pt" />
        </shape>
    </item>
</layer-list>

在发生这种情况之前,cpu会在一两秒内达到100%.

我正在使用Android 2.2的模拟器

这是我的例外.

01-26 16:51:38.084: ERROR/AndroidRuntime(955): FATAL EXCEPTION: main
01-26 16:51:38.084: ERROR/AndroidRuntime(955): java.lang.NullPointerException
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.graphics.Canvas.drawLine(Canvas.java:809)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.graphics.drawable.GradientDrawable.draw(GradientDrawable.java:347)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.graphics.drawable.LayerDrawable.draw(LayerDrawable.java:320)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.View.draw(View.java:6725)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.View.draw(View.java:6846)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.View.buildDrawingCache(View.java:6502)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.onAnimationStart(ViewGroup.java:1253)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.drawChild(ViewGroup.java:1499)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.View.draw(View.java:6743)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.View.draw(View.java:6743)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.View.draw(View.java:6743)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.widget.FrameLayout.draw(FrameLayout.java:352)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1842)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewRoot.draw(ViewRoot.java:1407)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1163)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.os.Looper.loop(Looper.java:123)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at android.app.ActivityThread.main(ActivityThread.java:4627)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at java.lang.reflect.Method.invokeNative(Native Method)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at java.lang.reflect.Method.invoke(Method.java:521)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-26 16:51:38.084: ERROR/AndroidRuntime(955):     at dalvik.system.NativeStart.main(Native Method)

编辑

将大小重命名为笔划可以消除崩溃,但我没有得到虚线.我想要在drawable的中间或底部有一条水平虚线.

解决方法

发生崩溃是因为GradientDrawable.mstrokePaint为null,这又是因为你没有指定< stroke>在您的XML中.

改变< size>至< stroke>将修复它,但您还需要将笔触颜色更改为与背景颜色不同,即:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item><shape><solid android:color="#CCC"/></shape></item>
    <item android:top=".5pt" android:bottom=".5pt">
        <shape android:shape="line">
            <stroke android:height="1pt" android:color="#FF000000" android:dashWidth="1pt" android:dashGap="1pt" />
        </shape>
    </item>
</layer-list>

canvas 与 svg 的区别有什么?canvas 和 svg 的区别比较

canvas 与 svg 的区别有什么?canvas 和 svg 的区别比较

canvas 与 svg 都是可以在浏览器上创建图形,因此,在 html5 中感觉 canvas 和 svg 很相似,但是实际上 canvas 与 svg 有着根本的区别。下面 php 中文网通过比较 canvas 和 svg 之间的不同来给大家总结了关于 canvas 与 svg 的区别。一起来看一看吧。

 

在说 canvas 与 svg 的区别之前,我们先来看一看 canvas 和 svg 是什么?

svg 是什么?

SVG 指可伸缩矢量图形 (Scalable Vector Graphics)。
SVG 用来定义用于网络的基于矢量的图形。
SVG 使用 XML 格式定义图形。
SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失。
SVG 是万维网联盟的标准。
SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体。

canvas 是什么?

HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。画布是一个矩形区域,您可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

知道了 svg 和 canvas 是什么之后,我们就来比较一下 canvas 和 svg。

canvas 和 svg 的区别比较:

首先我们从时间上看 canvas 与 svg 的区别:

canvas 是 html5 提供的新元素 <canvas>,而 svg 存在的历史要比 canvas 久远,已经有十几年了。

svg 并不是 html5 专有的标签,最初 svg 是用 xml 技术(超文本扩展语言,可以自定义标签或属性)描述二维图形的语言。

其次我们从功能上看 canvas 与 svg 的区别:

SVG 是一种使用 XML 描述 2D 图形的语言。
SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。
在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。

Canvas 通过 JavaScript 来绘制 2D 图形。
Canvas 是逐像素进行渲染的。
在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。

最后我们来看 canvas 与 svg 技术应用上的比较:

canvas 不依赖分辨率。
canvas 支持事件处理器。
canvas 最适合带有大型渲染区域的应用程序(比如谷歌地图)。
canvas 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)。
canvas 不适合游戏应用

svg 依赖分辨率。
svg 不支持事件处理器。
svg 弱的文本渲染能力。
svg 能够以 .png 或 .jpg 格式保存结果图像。
svg 最适合图像密集型的游戏,其中的许多对象会被频繁重绘

本篇文章到这里就结束了,对于 canvas 和 svg 的更多知识内容可以参考 HTML5 开发手册。

以上就是 canvas 与 svg 的区别有什么?canvas 和 svg 的区别比较的详细内容,更多请关注 php 中文网其它相关文章!

今天关于php – Facebook getLoginUrl for canvas的分享就到这里,希望大家有所收获,若想了解更多关于Android canvas 里面 paint 旋转 canvas 有锯齿、Android 中View.onDraw(Canvas canvas)的使用方法、Android:android.graphics.Canvas.drawLine(Canvas.java:809)中的java.lang.NullPointerException(可能与我的drawable资源有关)、canvas 与 svg 的区别有什么?canvas 和 svg 的区别比较等相关知识,可以在本站进行查询。

本文标签: