我想创建一个带有圆形或矩形背景,文本和文本下方或上方图像的按钮.
这是我添加对象的CustomButton Layout(背景和文本 - 缺少ImageView):
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:orientation="horizontal" android:layout_width="wrap_content" android:layout_gravity="center_vertical|center_horizontal">
Run Code Online (Sandbox Code Playgroud)
我想用方法setText()和setImage()创建一个CustomButton对象,它将更改按钮文本和图像,并将多个CustomButtons放入主布局.
有谁知道如何创建自定义布局,将其放入另一个布局(主要)并从绑定到主布局的活动修改其元素?
我将衷心感谢您的帮助.
谢谢!
嗨我以前从未使用过小部件,但我想做的是创建一个非常简单的小部件我基本上想要制作一个只有一个图标的1对1小部件,只是一个图像设置为背景没有任何文字只是一个小图标,当按下图标时,我想打开一个活动.基本上我想在小部件窗体中创建第二个图标,就像在应用程序抽屉中打开另一个活动而不是主要活动.任何帮助是极大的赞赏
当我尝试在模拟器中添加小部件时,会出现一堆错误.可能是什么问题?
这是小部件的XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1" android:background="@layout/widget_layout">
<FrameLayout android:id="@+id/frameLayout1" android:layout_height="200dp" android:layout_width="160dp" android:background="@drawable/framep">
<RelativeLayout android:id="@+id/relativeLayout1" android:layout_width="match_parent" android:layout_height="match_parent">
<TextView android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:text="TextView" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_marginLeft="24dp" android:layout_marginTop="22dp" android:id="@+id/widDay" android:textColor="@color/colorBlack"></TextView>
<TextView android:text="TextView" android:layout_below="@+id/widDay" android:layout_alignLeft="@+id/widDay" android:layout_marginTop="15dp" android:id="@+id/widText" android:layout_height="120dp" android:layout_width="115dp" android:textColor="@color/colorBlack"></TextView>
</RelativeLayout>
</FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
以下是错误:
07-20 22:57:52.142: WARN/AppWidgetHostView(130): Error inflating AppWidget AppWidgetProviderInfo(provider=ComponentInfo{com.geft.timetable/com.geft.timetable.WatchWidget}): android.view.InflateException: Binary XML file line #2: Error inflating class android.widget.LinearLayout
07-20 22:57:52.222: WARN/InputManagerService(61): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@406c0a50
07-20 22:57:52.352: WARN/AppWidgetHostView(130): updateAppWidget couldn't find any …Run Code Online (Sandbox Code Playgroud) 过去两天一直在努力改变我的小部件的背景,基于一些if语句(现在删除只是想从类中更改小部件背景)这里是我的源代码.虽然怎么了,我已经改变了之前的图片,比如背景,但是不能让它适合我的小部件谢谢你.这是我最近的尝试
//Widget Provider Class
public class WidgetProvider extends AppWidgetProvider {
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
Intent intent = new Intent(context, com.widget.WidgetDialog.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setOnClickPendingIntent(R.id.widget, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
views.setImageViewBitmap(R.id.widget, ((BitmapDrawable)context.getResources().getDrawable(R.drawable.widget_background)).getBitmap());
}
}
}
//Widget Layout XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button android:id="@+id/widget"
android:background="#00000000"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</Button> …Run Code Online (Sandbox Code Playgroud) 我正在研究一个由按钮组成的切换小部件.按下时,我希望它能在不打开任何东西的情况下运行一个活动(就像平时一样在桌面上说).有没有办法通过桌面小部件上的按钮直接运行活动?谢谢!更新:现在我正在尝试从代码中切换静默模式而不运行新活动.这是我当前的代码(当我因某些原因点击它们时按钮什么都不做)
package toggleHD.widget;
import android.app.Activity;
import android.app.IntentService;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.media.AudioManager;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.RemoteViews;
import android.widget.Toast;
public class ButtonWidget extends AppWidgetProvider {
public static String ACTION_WIDGET_CLICK_RECEIVER = "ActionReceiverWidget";
public static int appid[];
public static RemoteViews rview;
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds){
updateWidgetState(context, "");
}
@Override
public void onReceive(Context paramContext, Intent paramIntent)
{
String str = paramIntent.getAction();
if (paramIntent.getAction().equals(ACTION_WIDGET_CLICK_RECEIVER)) {
updateWidgetState(paramContext, str); …Run Code Online (Sandbox Code Playgroud) 当我尝试更新内容时,我的App-Widget出现问题.
小部件看起来像这样:http: //i.stack.imgur.com/tEGLv.jpg
Widget包含一个Header(Buttons + TextViews)和一个ListView.如果用户按下按钮,ListView会显示第二天的内容,一切正常.但问题是,如果我尝试从我的应用程序更新窗口小部件或自动更新时间段ListView doenst更新.
这是我的代码.
的AppWidgetProvider:
public class StudyWidgetProvider extends AppWidgetProvider{
private static String BUTTON_BACK = "BUTTON_BACK";
private static String BUTTON_FORWARD = "BUTTON_FORWARD";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
context.startService(new Intent(context, UpdateService.class));
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if(WidgetViewsFactory.currentDate == null){
WidgetViewsFactory.currentDate = Calendar.getInstance();
}
String action = intent.getAction();
if(action != null){
if(action.equals(BUTTON_BACK)){
WidgetViewsFactory.currentDate.add(Calendar.DATE, -1);
}
if(action.equals(BUTTON_FORWARD)){
WidgetViewsFactory.currentDate.add(Calendar.DATE, 1);
}
}
context.startService(new Intent(context, UpdateService.class));
}
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试更改节点添加表单上的图像小部件中的"alt"和标题"标签".

我试过这两个钩子:
hook_field_widget_form_alter
hook_form_alter
Run Code Online (Sandbox Code Playgroud)
我无法找到我需要去哪里成功改变标签.有人可以指导我以适当的方式加入这个并改变它们吗?如果它有所作为,我正在从自定义模块中击中它们.通过主题击中它们对我来说也没问题.
任何人的想法?
我已经为其他人创建了一个jQuery小部件嵌入他们的网站,在小部件中我使用了一个名为"cleanslate"的css reset样式表:
https://github.com/premasagar/cleanslate
这会阻止页面样式进入我的窗口小部件.
问题是我的fadeOut和fadeIn不再有效,因为重置样式覆盖了displayjQuery添加的内联样式.我需要使fadeOut函数添加!important;到内联样式.
有谁知道这是否可能?
提前致谢.
我知道可以通过创建指令在AngularJS中创建自定义HTML5元素/小部件.
我最近一直在研究聚合物.另一个框架可以轻松创建自定义元素.但是,Polymer使用像ShadowDOM这样的原生HTML5 API ,AngularJS没有.
注意:我只考虑为最新的浏览器创建自定义元素/小部件.
看起来AngularJS和Polymer都可以完成工作.但这两个图书馆的优点和缺点是什么?
我正在创建一个应用程序,其中几乎所有的UI元素都是动态创建的......其中包括从用户输入的数字生成的QLineEdit+ QPushButton对列表.按钮打开一个Dialog窗口来查找文件,QLineEdits用于数据验证/编辑,所有这些都必须在数据库中结束.有时他只需输入3个值,有时10个.
QLineEdit* warstwaEdit[iloscWarstw]; //iloscWarstw - number user inputs
QPushButton* warstwaDialog[iloscWarstw];
for(int i=0; i<iloscWarstw; i++) {
warstwaEdit[i] = new QLineEdit;
warstwaEdit[i]->setFixedHeight(25);
warstwaEdit[i]->setFixedWidth(400);
ui->scrollAreaWidgetContentsFormularzWarstw->layout()->addWidget(warstwaEdit[i]);
warstwaDialog[i] = new QPushButton;
warstwaDialog[i]->setFixedWidth(100);
warstwaDialog[i]->setFixedHeight(30);
warstwaDialog[i]->setText("Dodaj element");
ui->scrollAreaWidgetContentsFormularzWarstw->layout()->addWidget(warstwaDialog[i]);
mapperDialog->setMapping(warstwaDialog[i], i);
connect(warstwaDialog[i], SIGNAL(clicked()), mapperDialog, SLOT(map()));
}
Run Code Online (Sandbox Code Playgroud)
但我无法让Dialog将String传递给"他的"标签.在Dialog的插槽中,我正在尝试使用
ui->scrollAreaWidgetContentsFormularzWarstw->layout()->warstwaEdit[i]->setText(filepath);
Run Code Online (Sandbox Code Playgroud)
但显然QLayout ()(也scrollAreaWidgetContentsFormularzWarstw)有一个成员"warstwaEdit".qDebug()在该槽中使用表示i正在传递正确的.TreeDump表示ScrollAreaWidgetContentsFormularzWarstw是父级.
我有点不知所措.我第一次遇到Qt时得到了一个非常奇怪的应用......