libgdx中,opengl 1.x要求图片长宽必须为2的整次幂,一般有如下解决方法

1. 将opengl 1.x改为opengl 2.0。(libgdx 1.0版本后不支持1.x,当然不存在这个问题,这里针对的是0.9.9版本)

2. 使用TexturePacker将图片打包好然后作成一张大图添加进来。

第二种方法是常用方法,但是不太灵活,添加、删除某些图片不太方便,改动较大。这里可以考虑使用PixmapPacker将图片进行动态打包。

主要方法:

pack(String name, Pixmap pixmap) 打包某个图片,并制定名称

generateAtlas( TextureFilter minFilter, TextureFilter magFilter, boolean useMipMap ) 生成图片资源包

示例代码:

 package com.fxb.newtest;

 import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Pixmap.Format;
import com.badlogic.gdx.graphics.Texture.TextureFilter;
import com.badlogic.gdx.graphics.g2d.PixmapPacker;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.graphics.g2d.TextureRegion; public class Lib019_TexturePack extends ApplicationAdapter{ TextureAtlas atlas;
TextureRegion region1, region2;
SpriteBatch batch; @Override
public void create() {
// TODO Auto-generated method stub
super.create(); PixmapPacker packer = new PixmapPacker( 512, 512, Format.RGB565, 2, true );
//packer.pack( "first", pixmap1 );
Pixmap pixmap1 = new Pixmap( Gdx.files.internal( "data/badlogic.jpg" ) );
Pixmap pixmap2 = new Pixmap( Gdx.files.internal( "data/pal4_1.jpg" ) );
packer.pack( "first", pixmap1 );
packer.pack( "second", pixmap2 ); atlas = packer.generateTextureAtlas( TextureFilter.Nearest, TextureFilter.Nearest, false );
region1 = atlas.findRegion( "first" );
region2 = atlas.findRegion( "second" ); pixmap1.dispose();
pixmap2.dispose(); batch = new SpriteBatch();
} @Override
public void render() {
// TODO Auto-generated method stub
super.render();
Gdx.gl.glClearColor( 0, 1, 1, 1 );
Gdx.gl.glClear( GL10.GL_COLOR_BUFFER_BIT ); batch.begin();
batch.draw( region1, 10, 10 );
batch.draw( region2, 20+region1.getRegionWidth(), 10 );
batch.end(); } @Override
public void dispose() {
// TODO Auto-generated method stub
atlas.dispose();
super.dispose();
} }

运行结果:

最新文章

  1. Java开发中的23种设计模式详解
  2. Not Hello World
  3. css3 -- 网页字体
  4. 【BZOJ】【1020】【SHOI2008】安全的航线flight
  5. new int[]和new int()的区别
  6. Nginx - Additional Modules, Content and Encoding
  7. [Webpack 2] Use Karma for Unit Testing with Webpack
  8. 加载jar文件输出class和method
  9. xe6+firedac连接sybase
  10. TCP的状态
  11. java学习之生产者和消费者案例
  12. 快速排序原理、复杂度分析及C语言实现
  13. pyrhon多进程操作初探
  14. Ubuntu下的第一个博客
  15. iOS在GitHub Top 前100 简介
  16. org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.zhuoshi.entity.Dep#1]
  17. UVaLive 4064 Magnetic Train Tracks (极角排序)
  18. winhex模版
  19. HDU 1846 Brave Game(巴什博弈超简单题)
  20. [UE4]Return Node节点好用法

热门文章

  1. 记一次Linux下数据统计
  2. 在 Windows 上创建虚拟机规模集和部署高度可用的应用
  3. [CENTOS7] 将域群组加入到Sudoer里
  4. 【转】Mysql学习---MySQL悲观锁中的排它锁
  5. git status 显示中文和解决中文乱码
  6. 第 14 章 结构和其他数据形式(names)
  7. ndroid动态创建按钮并添加事件
  8. PyQt5--MainWindow
  9. 请问下.net俱乐部这个组织现在还存在么?
  10. 【转】Android Service创建USB HOST通信