如何在C/C++程序中更改Linux桌面上的壁纸(使用GNOME)?有没有系统API可以做到这一点?
我正在为Android写一个动态壁纸.为了测试我的基本代码是否正常工作,我在屏幕的左上角显示了一个矩形:
canvas.drawRect(0f,0f,50f,50f,paint);
Run Code Online (Sandbox Code Playgroud)
矩形的一半位于主屏幕顶部的栏下方.
我尝试使用以下方法考虑像素偏移:
public void onOffsetsChanged(float xOffset, float yOffset,
float xOffsetStep, float yOffsetStep, int xPixelOffset,
int yPixelOffset)
...
canvas.drawRect(0f+xPixelOffset,0f+yPixelOffset,50f+xPixelOffset,50f+yPixelOffset
,paint);
Run Code Online (Sandbox Code Playgroud)
但矩形仍然在条形图下方绘制.怎么找到酒吧的哪里结束所以我可以在它下面画?
干杯,
皮特
我一直在开发需要将图像设置为壁纸的应用程序.
码:
WallpaperManager m=WallpaperManager.getInstance(this);
String s=Environment.getExternalStorageDirectory().getAbsolutePath()+"/1.jpg";
File f=new File(s);
Log.e("exist", String.valueOf(f.exists()));
try {
InputStream is=new BufferedInputStream(new FileInputStream(s));
m.setBitmap(BitmapFactory.decodeFile(s));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("File", e.getMessage());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("IO", e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
我还添加了以下权限:
<uses-permission android:name="android.permission.SET_WALLPAPER" />
Run Code Online (Sandbox Code Playgroud)
但它不起作用; 该文件存在于SD卡上.我哪里弄错了?
我制作了一个简单的C#程序来显示我们所拥有的一些机器的基本信息.该程序是全屏的,每秒刷新一次.我们在商店里有一个专用的PC和屏幕,可以不断地显示它,但是有些导演也想在PC上使用它,但它看起来像是一个壁纸.
请告诉我是否有一种简单的方法将程序设置为动态壁纸,因为我什么都没发现.
我认为真正的解决方案是修改程序以使其最小化运行,偶尔(如每15或20分钟)它会在最大化时生成外观图像,然后将该图像设置为桌面墙纸.
我的解决方案有意义吗?如何从隐藏的应用程序生成图片?
我正在开发一个简单的应用程序,它根据用户输入设置壁纸。我缺少设置壁纸的代码。我在很多网站上都没有找到它。任何人都可以发布设置为墙纸的示例代码作为保存在res文件夹中的可绘制对象吗?
我正在制作一个简单的 android 动态壁纸,我按照Hello, Android 中的第 12 章作为我的指南。
壁纸服务的基本结构如下所示:
public class MyWallpaper extends WallpaperService {
private class MyEngine extends Engine {
//...
}
//...
}
Run Code Online (Sandbox Code Playgroud)
按照书上的说法MyEngine 一定是内部类的MyWallpaper。我没有理由对此提出异议,但该书没有解释为什么必须如此。我不喜欢纯粹出于风格/美学原因使用内部类。
我想知道是否MyEngine实际上必须是一个私有内部类,如果是,为什么?
我一直面临一个问题。如何在 Android 中设置墙纸,而不将其拉伸到 5 个主屏幕。需要明确的是,我有一个分辨率为 320x480px 的资源图像,当我在 Android 中将其设置为墙纸时,它会在 5 个屏幕上拉伸,但我希望它仅显示在 1 个屏幕中(或在所有屏幕中显示相同的图像),知道了?
我对使用动态壁纸不感兴趣。
我正在开发一个应用程序,从图库中选择一个图像,然后将该图像设置为壁纸.但这里的问题是只有部分图像被设置为壁纸而不是整个图像,但我想将整个图像设置为壁纸.你能告诉我怎么办?
这是我的代码......
public class Scaleimage extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String FileName;
File file = new File("/sdcard/pictures");
File[] imageFiles = file.listFiles( );
if(imageFiles.length > 0 ) {
FileName = imageFiles[0].getName();
final WallpaperManager wallpaperManager = WallpaperManager.getInstance(getBaseContext());
Bitmap myBitmap = BitmapFactory.decodeFile("/sdcard/pictures" + "/" + FileName);
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels << 1;
myBitmap = Bitmap.createScaledBitmap(myBitmap,width, height, true);
try { …Run Code Online (Sandbox Code Playgroud) 我正在尝试更改当前的用户壁纸.我已经设置了set_wallpaper权限,但它确实有效.但是当我改变壁纸时,我必须等待大约15秒才能看到壁纸的变化.
这是很奇怪的,因为如果我检查锁定屏幕它已经改变了.
这是我的代码:
public static void setWallpaper(final Context context, final Bitmap image){
Thread thread = new Thread() {
@Override
public void run() {
WallpaperManager wallpaperManager = WallpaperManager.getInstance(context.getApplicationContext());
try {
if(image != null){
wallpaperManager.setBitmap(image);
}
} catch (IOException ignored) {}
}
};
thread.start();
}
Run Code Online (Sandbox Code Playgroud)
我在Android 6上.任何帮助将不胜感激.
我开发了一个动态壁纸应用程序,它只能从谷歌的动态壁纸应用程序访问,但像小米、Oppo 这样的手机有自己的壁纸应用程序,而我的应用程序没有显示在他们的壁纸部分。谁能帮我解决这个问题或将我重定向到一个想法来解决这个问题?
这是我的 Wallpaper.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<wallpaper
xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/wallpaper_description"
android:thumbnail="@raw/element1"
android:settingsActivity=""/>
Run Code Online (Sandbox Code Playgroud)
这是我的清单文件
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.edustan.mywallpaper">
<uses-feature
android:name="android.software.live_wallpaper"
android:required="true" />
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/>
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="AllowBackup,GoogleAppIndexingWarning" >
<service
android:name=".MyWallpaperService"
android:enabled="true"
android:label="Wallpaper Example "
android:permission="android.permission.BIND_WALLPAPER">
<intent-filter>
<action android:name="android.service.wallpaper.WallpaperService" />
</intent-filter>
<meta-data
android:name="android.service.wallpaper"
android:resource="@xml/wallpaper" />
</service>
</application>
Run Code Online (Sandbox Code Playgroud)
这是我的 WallpaperService 类文件
@Override
public Engine onCreateEngine() {
return new MyWallpaperEngine();
}
private class MyWallpaperEngine extends Engine{
public Bitmap image1, image2, image3;
private int count_new =0;
private …Run Code Online (Sandbox Code Playgroud)