b4a and b4j 学习记录

ideamaker

Member
第一章图片查看器

功能:点击图像框(imageView)就更新一张图片
问题:不知道如何访问外部图片资源及获取内部图片资源名称

b4a代码:(img_num 为全局变量)

Private Sub ImageView1_Click()
img_num = img_num+1
ImageView1.Bitmap=xui.LoadBitmap(File.DirAssets,img_num & ".jpg")
If img_num == 5 Then
img_num = 0
End If
End Sub

b4j代码:(img_num 为全局变量)

Private Sub ImageView1_Click()
img_num = img_num+1
ImageView1.SetImage(xui.LoadBitmap(File.DirAssets,img_num & ".jpg"))
If img_num == 5 Then
img_num = 0
End If
End Sub

Private Sub ImageView1_MouseClicked (EventData As MouseEvent)
ImageView1_Click()
End Sub

分析:b4a与b4j的区别在于 ImageView事假函数的处理方法不同 这里直接引用了b4a的事件代码(把它作为一个自建函数使用) 其次b4j和b4a的加载图片的方式也不同b4a: ImageView1.Bitmap=xui.LoadBitmap(File.DirAssets,img_num & ".jpg") b4j: ImageView1.SetImage(xui.LoadBitmap(File.DirAssets,img_num & ".jpg"))
 

drgottjr

Expert
Licensed User
Longtime User
您的问题与您显示的代码无关。 这很令人困惑。

使用B4J可以轻松访问外部图像。 使用Microsoft Windows,如果您知道资源在哪里,几乎可以随时访问它。 使用B4A并非易事。 Google不想让您直接在应用程序外部访问图像。 您可能必须使用“提供程序”。 无论如何,您都需要确切说明您想做什么。

您似乎已经知道如何访问内部图像资源。 我不明白你为什么说你不知道怎么做。 再次在这里,您需要解释更多。

您的应用程序的目的是什么?
Nín de wèntí yǔ nín xiǎnshì de dàimǎ wúguān. Zhè hěn lìng rén kùnhuò.

Shǐyòng B4J kěyǐ qīngsōng fǎngwèn wàibù túxiàng. Shǐyòng Microsoft Windows, rúguǒ nín zhīdào zīyuán zài nǎlǐ, jīhū kěyǐ suíshí fǎngwèn tā. Shǐyòng B4A bìngfēi yì shì. Google bùxiǎng ràng nín zhíjiē zài yìngyòng chéngxù wàibù fǎngwèn túxiàng. Nín kěnéng bìxū shǐyòng “tígōng chéngxù”. Wúlùn rúhé, nín dōu xūyào quèqiè shuōmíng nín xiǎng zuò shénme.

Nín sìhū yǐjīng zhīdào rúhé fǎngwèn nèibù túxiàng zīyuán. Wǒ bù míngbái nǐ wèishéme shuō nǐ bù zhīdào zěnme zuò. Zàicì zài zhèlǐ, nín xūyào jiěshì gèng duō.

Nín de yìngyòng chéngxù de mùdì shì shénme?
Show more
 

ideamaker

Member
sorry 我无法用英语回答您 。对于我来说b4a和b4j的教程太少了,或者说中文教程太少了 我不太清楚它的函数的用法 。这些程序没有问题可以正常运行。上面的问题是想做程序的拓展让他有一定的使用价值。这个记录是为了让和我一样英语不好的人可以学习
 

aeric

Expert
Licensed User
Longtime User
您的问题与您显示的代码无关。 这很令人困惑。

使用B4J可以轻松访问外部图像。 使用Microsoft Windows,如果您知道资源在哪里,几乎可以随时访问它。 使用B4A并非易事。 Google不想让您直接在应用程序外部访问图像。 您可能必须使用“提供程序”。 无论如何,您都需要确切说明您想做什么。

您似乎已经知道如何访问内部图像资源。 我不明白你为什么说你不知道怎么做。 再次在这里,您需要解释更多。

您的应用程序的目的是什么?
Nín de wèntí yǔ nín xiǎnshì de dàimǎ wúguān. Zhè hěn lìng rén kùnhuò.

Shǐyòng B4J kěyǐ qīngsōng fǎngwèn wàibù túxiàng. Shǐyòng Microsoft Windows, rúguǒ nín zhīdào zīyuán zài nǎlǐ, jīhū kěyǐ suíshí fǎngwèn tā. Shǐyòng B4A bìngfēi yì shì. Google bùxiǎng ràng nín zhíjiē zài yìngyòng chéngxù wàibù fǎngwèn túxiàng. Nín kěnéng bìxū shǐyòng “tígōng chéngxù”. Wúlùn rúhé, nín dōu xūyào quèqiè shuōmíng nín xiǎng zuò shénme.

Nín sìhū yǐjīng zhīdào rúhé fǎngwèn nèibù túxiàng zīyuán. Wǒ bù míngbái nǐ wèishéme shuō nǐ bù zhīdào zěnme zuò. Zàicì zài zhèlǐ, nín xūyào jiěshì gèng duō.

Nín de yìngyòng chéngxù de mùdì shì shénme?
Show more
He/She tries to share what he/she has found out the difference between B4A and B4J.

B4A Code
B4X:
Sub Process_Globals
    Private img_num As Int
End Sub

Sub Globals
    Private xui As XUI
    Private ImageView1 As ImageView
End Sub

Sub ImageView1_Click
    img_num = img_num + 1
    ImageView1.Bitmap = xui.LoadBitmap(File.DirAssets, img_num & ".jpg") ' ImageView1.Bitmap = xui.LoadBitmap(Dir As String,FileName As String)
    If img_num = 5 Then
        img_num = 0
    End If
End Sub

B4J Code
B4X:
Sub Process_Globals
    Dim xui As XUI
    Dim img_num As Int
    Private MainForm As Form
    Private ImageView1 As ImageView
End Sub

Sub ImageView1_MouseClicked (EventData As MouseEvent)
    img_num = img_num + 1
    ImageView1.SetImage(xui.LoadBitmap(File.DirAssets, img_num & ".jpg")) ' ImageView1.SetImage(Image As javafx.scene.image.Image)

    If img_num = 5 Then
        img_num = 0
    End If
End Sub
The observation concluded of 2 main things.
1. Click vs MouseClicked event
2. ImageView1.Bitmap vs ImageView1.SetImage

我建议您在发帖时使用[code][/code]
 

aeric

Expert
Licensed User
Longtime User
1610005694740.png

点击左上角的Code按钮

1610005929688.png



您也可以点击此页面右下角的帮助(Help)链接
1610004974422.png

然后再点击 BB codes 链接
1610005064163.png
 
Top