欢迎光临散文网 会员登陆 & 注册

Android QPython3 可视化-图像文本:ImageText.py

2020-10-27 12:13 作者:乘着船  | 我要投稿

#需要BaseWindow.py  https://www.bilibili.com/read/cv8680125


from BaseWindow import *

XML="""<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

 android:layout_width="fill_parent"

 android:layout_height="fill_parent"

 android:background="#ff0E4200"

 android:orientation="vertical"

 xmlns:android="http://schemas.android.com/apk/res/android">

 <LinearLayout

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:orientation="vertical"

  android:layout_weight="20">

 <ScrollView   

        android:layout_width="fill_parent"   

        android:layout_height="fill_parent" > 

 <LinearLayout

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:orientation="vertical"

  android:layout_weight="20"> 

    <EditText

  android:id="@+id/Title"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

  android:textSize="8dp"

  android:text=""

  android:textColor="#ff0000"

  android:layout_weight="0"

  android:gravity="center"

 />

 <EditText

  android:id="@+id/Text"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

  android:textSize="8dp"

  android:text=""

  android:textColor="#0000ff"

  android:layout_weight="0"

 />

""","""

 </LinearLayout>

 </ScrollView>

    </LinearLayout>

 <LinearLayout

  android:layout_width="fill_parent"

  android:layout_height="100dp"

  android:orientation="horizontal"

  android:layout_weight="8">

 <Button

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:text="%s"

  android:id="@+id/but_conf"

  android:textSize="8dp"

  android:background="#007f7f"

  android:textColor="#ffffffff"

  android:layout_weight="1"

  android:gravity="center"/>

 <Button

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:text="%s"

  android:id="@+id/but_copy"

  android:textSize="8dp"

  android:background="#7f7f00"

  android:textColor="#ffffffff"

  android:layout_weight="1"

  android:gravity="center"/>

 <Button

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:text="%s"

  android:id="@+id/but_canc"

  android:textSize="8dp"

  android:background="#7f007f"

  android:textColor="#ffffffff"

  android:layout_weight="1"

  android:gravity="center"/>

 </LinearLayout>

</LinearLayout>"""

IV=''' <ImageView

  android:id="@+id/Image%s"

  android:layout_width="fill_parent"

  android:layout_height="0dp"

  android:layout_weight="1"

  android:adjustViewBounds="true"

  android:scaleType="fitXY"

 />'''

class MainScreen(Layout):

    def on_show(self):

        v=self.views

        v.but_conf.add_event(click_EventHandler(self.views.but_conf,self.conf))

        v.but_copy.add_event(click_EventHandler(self.views.but_copy,self.copy))

        v.but_canc.add_event(click_EventHandler(self.views.but_canc,self.canc))

        v['Title'].text=self.Title

        v['Text'].text=self.Text

        c=self.Count

        i=self.Images

        for c in range(c):

            v['Image%s'%c].src=i[c]

    def on_close(self):

        pass

    def copy(self,view,dummy):

        droid.setClipboard(self.views.Text.text)

        droid.makeToast("文本已复制")

    def conf(self,view,dummy):

        MainScreen.Text=self.views.Text.text

        FullScreenWrapper2App.close_layout()

    def canc(self,view,dummy):

        MainScreen.Text=None

        FullScreenWrapper2App.close_layout()

def ImageText(Title='',Text='',Images='',button=CCC):#主函数

#图像长文本(标题,多行文本,图像文件名列表,(确认按钮文本,复制按钮文本,取消按钮文本))

    i=type(Images)

    if i==str:

        Images=[Images,]

    elif i==tuple:

        Images=list(Images)

    a=[XML[0]]

    for i in range(len(Images)):

        if Images[i].find('://')==-1:

            Images[i]='file://'+Images[i]

        a.append(IV%i)

    MainScreen.Images=Images

    MainScreen.Count=i+1

    MainScreen.Title=Title

    MainScreen.Text=Text

    a.append(XML[1]%button)

    FullScreenWrapper2App.show_layout(MainScreen('\n'.join(a),'Image'))

    FullScreenWrapper2App.eventloop()

    i=MainScreen.Text

    del MainScreen.Text,MainScreen.Title,MainScreen.Count,MainScreen.Images

    return i

__all__=('ImageText','droid')


tb='/sdcard/Pictures/taobao/'
tb=(tb+'-1140137267.jpg',tb+'1379905288.jpg')
txt='白巧克力\n黑巧克力'
txt=ImageText('淘宝图片',txt,tb)
print(txt)
按“确认”后打印的内容

另,更改背景图片的方法:

1.全Activity或大范围更改

<LinearLayout

 android:background="file:///sdcard/……/xxx.jpg"

 #其他内容# >

2.小控件更改

 <EditText

 android:background="file:///sdcard/……/xxx.jpg"

 #其他内容#

 />


作者:乘着船@Bilibili

更多文章+下载链接:https://www.bilibili.com/read/readlist/rl321663


Android QPython3 可视化-图像文本:ImageText.py的评论 (共 条)

分享到微博请遵守国家法律