可按Ctrl+D收藏 蚂蚁资源网

蚂蚁资源网

fbreader源码(fbreader高级版)

  • 时间:2021-02-11 14:01 编辑:帕丽扎提 来源:蚂蚁资源 阅读:189
  • 扫一扫,手机访问
摘要:大家好,今天给大家介绍关于fbreader源码(fbreader高级版)的相关内容,详细讲解我在网上搜了一个关于安卓电子书的源代码,我想弄懂它。请问大家我从哪些方面入手能大致了解它,怎么使用fbreader进行安卓阅读器开发,如何编译并修改FBReader的package等,希望可以帮助到您。
我在网上搜了一个关于安卓电子书的源代码,我想弄懂它。请问大家我从哪些方面入手能大致了解它,电子书我建议您发现我有一本书的书。
怎么使用fbreader进行安卓阅读器开发,Eclipse是好的,解压缩,直接运行Eclipse.exe,第一次运行,让您选择一个工作目录,不要拿管(但我通常选择D:\ Workspace)。在Eclipse接口中,创建一个“Java Project”,拿起项目的名称,如“FBreader”,那么您将在Eclipse的左侧看到您的项目,但这次您仍然代码编号最后一步是最简单的:直接从源文件夹中选择所有文件,直接使用鼠标到Eclipse项目的图标,Eclipse自动导入整个项目。
如何编译并修改FBReader的package,1.首先下载fbreaderj的源代码(如何使用github没有引入,没有自我搜索),下载到zip格式压缩包。 2.已配置Android开发环境,包括SDK和NDK,主导地位使用Android开发官方网站。 SDK:与ADT的Eclipse,如如何安装它,它不是详细的,自己去百度。 3,提取下载的源包并将其导入Eclipse。在上面看到红色叉子,我们需要修复它,首先,库右键单击库,倒数下一个的第二个属性是fbreaderj,或右键单击,属性不会意外消除错误。 4,然后需要执行NDK编译,虽然程序似乎没有错误,但libs文件夹丢失* .so file打开cygwin,输入fbreaderj文件夹,运行命令/ cygdrive / d / android / android-ndk / ndk-build我开始编译。如下图所示,执行等待程序(耗时)。此时,您可以正常使用它。 5.1修改androidmanifest.xml文件要修改package =“org.geometer.plus.zlibrary.ui.android”包=“com.aaa.helloworld”并保存SRC文件夹中的一些类错误,打开这些保存的文件导入ORG .gemeterplus.zlibrary.gemeterplus.zlibrary.gemeterplus.zlibrary.gemeterplus.zlibrary.gemeterplus.r;修改以导入com.aa.helloyorld .r;然后达到我们的目的。

责任编辑(帕丽扎提

以上就是关于**fbreader源码,fbreader高级版**的全部内容,了解更多请关注蚂蚁资源网。
  • 全部评论(3)
  • zaijianshaoshi
  • Java记事本源代码,import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;import java.awt.event.InputEvent;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPopupMenu;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.KeyStroke;import javax.swing.filechooser.FileFilter;public class Demo extends JFrame {private static final long serialVersionUID = 1L; //Eclipse自动生成序列号String name = "无标题";JPanel menuPanel = new JPanel();JTextArea text = new TextAreaMenu(); //文本编辑区JScrollPane jsp = new JScrollPane(text); //可滚动编辑区JMenuBar mnbMain = new JMenuBar();JMenu mnServer = new JMenu("文件(F)");JMenu mnEdit = new JMenu("编辑(E)");JMenuItem[] mniServers = new JMenuItem[]{ new JMenuItem("新建(N)"), new JMenuItem("保存(S)"), new JMenuItem("打开(O)"), new JMenuItem("退出(X)"), };{ menuPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0)); mnbMain.add(mnServer); menuPanel.add(mnbMain); mnbMain.setBounds(5, 0, 50, 30); for (int i = 0; i < mniServers.length; i++) { mnServer.add(mniServers[i]); } mniServers[0].addActionListener(new ActionListener() { //定义"新建"组件操作 @Override public void actionPerformed(ActionEvent arg0) { new Demo(getLocation().x+15,getLocation().y+5); } }); mniServers[1].addActionListener(new ActionListener() { //定义"保存"组件操作 @Override public void actionPerformed(ActionEvent arg0) { chooseToSave(); } }); mniServers[2].addActionListener(new ActionListener() { //定义"打开"组件操作 @Override public void actionPerformed(ActionEvent arg0) { chooseToOpen(); } }); mniServers[3].addActionListener(new ActionListener() { //定义"退出"组件操作 @Override public void actionPerformed(ActionEvent arg0) { System.exit(0); } }); text.addFocusListener(new FocusListener() { @Override public void focusLost(FocusEvent e) { // TODO Auto-generated method stub } @Override public void focusGained(FocusEvent e) { } });}public Demo(int x,int y) { this.setTitle( name +" - 记事本"); this.setBounds(x, y, 600, 400); this.setLayout(new BorderLayout()); this.add(menuPanel, BorderLayout.NORTH); this.add(jsp); jsp.setBounds(5, 30, getWidth()-10, getHeight()-50); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); this.setVisible(true);}public Demo() { this(200,200);}protected void chooseToSave() { File file = chooseFile(); if(null==file)return; if(file.exists()){ int cho = JOptionPane.showConfirmDialog(this, "文件已存在,是否覆盖?"); System.out.println(cho); if(cho==JOptionPane.OK_OPTION)save(file); else return; } else save(file);}private void save(File file) { name = file.getName(); write(text.getText(),file.getPath()); this.setTitle( name +" - 记事本");}protected void chooseToOpen() { File file = chooseFile(); if(null==file||!file.exists())return; name = file.getName(); Demo.this.setTitle( name +" - 记事本"); read(text,file);} /*********************************************MAIN**************************************************/public static void main(String[] args) { new Demo();}private File chooseFile(){ JFileChooser chooser = new JFileChooser(); //构建文件选择器 chooser.setFileFilter(new FileFilter() { @Override public String getDescription() { return "文本文件"; } @Override public boolean accept(File f) { String name = f.getName().toLowerCase(); return f.isDirectory() || name.endsWith(".txt") ||name.endsWith(".c") || name.endsWith(".java") ||name.endsWith(".cpp"); //可识别文件 } }); int result = chooser.showDialog(null, "确定"); if (result==JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); System.out.println(file.getAbsolutePath()); } else { System.out.println("未选择文件"); } return chooser.getSelectedFile();}public static void read(JTextArea text,File file){ //定义读取文件操作 FileReader fr; try { fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String string = null; while((string = br.readLine()) != null){ text.append(string+"\n"); } br.close(); fr.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }}public static void write(String txt,String fileName){ FileWriter fw; try { fw = new FileWriter(fileName); BufferedWriter bw = new BufferedWriter(fw); bw.write(txt); bw.flush(); bw.close(); fw.close(); } catch (IOException e) { e.printStackTrace(); }}}class TextAreaMenu extends JTextArea implements MouseListener { private static final long serialVersionUID = -2308615404205560110L; private JPopupMenu pop = null; // 弹出菜单 private JMenuItem selectAll = null,copy = null, paste = null, cut = null, cancel=null; // 功能菜单 public TextAreaMenu() { super(); init(); } private void init() { this.addMouseListener(this); this.setSelectedTextColor(Color.red); pop = new JPopupMenu(); pop.add(selectAll = new JMenuItem("全选")); pop.add(copy = new JMenuItem("复制")); pop.add(paste = new JMenuItem("粘贴")); pop.add(cut = new JMenuItem("剪切")); pop.add(cancel = new JMenuItem("撤销")); selectAll.setAccelerator(KeyStroke.getKeyStroke('A', InputEvent.CTRL_MASK)); copy.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.CTRL_MASK)); paste.setAccelerator(KeyStroke.getKeyStroke('V', InputEvent.CTRL_MASK)); cut.setAccelerator(KeyStroke.getKeyStroke('X', InputEvent.CTRL_MASK)); cancel.setAccelerator(KeyStroke.getKeyStroke('Z', InputEvent.CTRL_MASK)); copy.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { action(e); } }); paste.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { action(e); } }); cut.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { action(e); } }); this.add(pop); } /** * 菜单动作 * @param e */ public void action(ActionEvent e) { String str = e.getActionCommand(); if (str.equals(selectAll.getText())) { // 全选 this.selectAll(); } else if (str.equals(copy.getText())) { // 复制 this.copy(); } else if (str.equals(paste.getText())) { // 粘贴 this.paste(); } else if (str.equals(cut.getText())) { // 剪切 this.cut(); } else if (str.equals(cancel.getText())) { //撤销 this.cut(); } } public JPopupMenu getPop() { return pop; } public void setPop(JPopupMenu pop) { this.pop = pop; } /** * 剪切板中是否有文本数据可供粘贴 * * @return true为有文本数据 */ public boolean isClipboardString() { boolean b = false; Clipboard clipboard = this.getToolkit().getSystemClipboard(); Transferable content = clipboard.getContents(this); try { if (content.getTransferData(DataFlavor.stringFlavor) instanceof String) { b = true; } } catch (Exception e) { } return b; } /** * 文本组件中是否具备复制的条件 * * @return true为具备 */ public boolean isCanCopy() { boolean b = false; int start = this.getSelectionStart(); int end = this.getSelectionEnd(); if (start != end) b = true; return b; } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON3) { copy.setEnabled(isCanCopy()); paste.setEnabled(isClipboardString()); cut.setEnabled(isCanCopy()); pop.show(this, e.getX(), e.getY()); } } public void mouseReleased(MouseEvent e) { }}
  • 2021-02-11 14:01:17
  • 网站模板素材下载
  • 去应用商店搞一个anyview或者ireader就好,从他们的在线书城里头可以下载到很多的免费的电子书
  • 2021-02-11 14:01:17
  • ydcker
  • 放到res/raw文件夹中。用getResouces方法把它读取出来。或者放到别的地方也可以,用FileInputStream("文件的绝对地址")读取。
  • 2021-02-16 00:00:01
最新发布的资讯信息
【简历/资料|内地女明星】 殷茹基本资料( YR个人简历介绍)(2020-12-06 15:19)
【简历/资料|内地女明星】 曹菁基本资料( CJ个人简历介绍)(2020-12-06 15:18)
【简历/资料|内地女明星】 王安妮基本资料( WAN个人简历介绍)(2020-12-06 15:18)
【简历/资料|内地女明星】 白琼基本资料( BQ个人简历介绍)(2020-12-06 15:17)
【简历/资料|内地女明星】 王世霞基本资料( WSX个人简历介绍)(2020-12-06 15:17)
【简历/资料|内地女明星】 宋煜基本资料( SY个人简历介绍)(2020-12-06 15:16)
【简历/资料|内地女明星】 钱增基本资料( QZ个人简历介绍)(2020-12-06 15:16)
【简历/资料|内地女明星】 胡晓黎基本资料( HXL个人简历介绍)(2020-12-06 15:15)
【简历/资料|内地女明星】 李佳慧基本资料( LJH个人简历介绍)(2020-12-06 15:15)
【简历/资料|内地女明星】 张洛嘉基本资料( ZLJ个人简历介绍)(2020-12-06 15:14)
联系客服
网站客服 联系客服
手机版

扫一扫进手机版
返回顶部