Picasso에서 Action Bar 아이콘, Notification 및 AppWidget의 이미지 설정
17038 단어 Android
메소드 목록
그림의 마운트 목적지
RequestCreator#into
를 지정하는 방법에는 다음과 같은 5가지가 있습니다.RequestCreator#into(ImageView)
RequestCreator#into(ImageView, Callback)
RequestCreator#into(RemoteViews, int, int, Notification)
RequestCreator#into(RemoteViews, int, int[])
RequestCreator#into(Target)
ImageView 설정 방법(1, 2)
흔한 샘플.응용 프로그램 내의 ImageView에서 1이나 2를 사용하는 것은 이러한 느낌입니다.
Picasso.with(context).load("http://cdn.qiita.com/assets/siteid-reverse-6044901aace6435306ebd1fac6b7858c.png").into(imageView);
Notification으로 설정하는 방법(3)
3가지 방법으로 이런 느낌을 준다.
MainActivity.java
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://qiita.com/"));
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
RemoteViews views = new RemoteViews(getPackageName(), R.layout.row);
views.setTextViewText(R.id.title, "Qiita");
views.setTextViewText(R.id.text, "http://qiita.com/");
Notification notification = new NotificationCompat.Builder(this)
.setContentIntent(contentIntent)
.setContent(views)
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("Qiita")
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.build();
((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).notify(1, notification);
Picasso.with(this).load("https://pbs.twimg.com/profile_images/1542801560/Qiita_bigger.png").into(views, R.id.icon, 1, notification);
row.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"/>
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/icon"
android:layout_alignParentTop="true"
android:paddingLeft="10dp"
style="@android:style/TextAppearance.StatusBar.EventContent.Title" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/icon"
android:layout_below="@id/title"
android:paddingLeft="10dp"
style="@android:style/TextAppearance.StatusBar.EventContent" />
</RelativeLayout>
AppWidget 설정 방법(4)
네 가지 방법으로 이런 느낌을 준다.
xml/my_app_widget_info.xml
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:initialKeyguardLayout="@layout/my_app_widget"
android:initialLayout="@layout/my_app_widget"
android:minHeight="40dp"
android:minWidth="40dp"
android:previewImage="@drawable/ic_launcher"
android:resizeMode="horizontal|vertical"
android:updatePeriodMillis="86400000"
android:widgetCategory="home_screen"/>
MyAppWidget.java@Override
public void onUpdate(Context context, AppWidgetManager manager, int[] appWidgetIds) {
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_app_widget);
for (int i = 0; i < appWidgetIds.length; i++) {
manager.updateAppWidget(appWidgetIds[i], views);
}
Picasso.with(context).load("https://pbs.twimg.com/profile_images/1542801560/Qiita_bigger.png").into(views, R.id.icon, appWidgetIds);
}
layout/my_app_widget.xml<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/icon"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/ic_launcher"/>
Action Bar로 설정하는 방법(5)
5가지 방법을 구현한 매개 변수
Target
인터페이스의 클래스를 만들고 이 클래스에ActionBar의 아이콘을 설정합니다.Picasso 내부는
Target
로 유지WeakReference
됩니다.따라서 최근에 적극적으로 방출된 안드로이드에서는 최소한 불러오기가 끝날 때까지 응용 프로그램에 저장하지 않으면 취소되고 표시되지 않습니다.다음은 구성원으로 유지됩니다.
ActionBarTarget.java
public class ActionBarTarget implements Target {
private final Activity mActivity;
public ActionBarTarget(Activity activity) {
mActivity = activity;
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
mActivity.getActionBar().setIcon(placeHolderDrawable);
}
@Override
public void onBitmapLoaded(Bitmap bitmap, LoadedFrom from) {
mActivity.getActionBar().setIcon(new BitmapDrawable(mActivity.getResources(), bitmap));
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
mActivity.getActionBar().setIcon(errorDrawable);
}
}
MainActivity.javaprivate ActionBarTarget mTarget;
...
mTarget = new ActionBarTarget(this);
Picasso.with(this).load("https://pbs.twimg.com/profile_images/1542801560/Qiita_bigger.png").into(mTarget);
Reference
이 문제에 관하여(Picasso에서 Action Bar 아이콘, Notification 및 AppWidget의 이미지 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/alzybaad/items/9f06732664cd5cdeac73텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)